使用Qt connect时出现Visual studio警告 我使用QT5.5.2C++的Visual Studio 2019。我制作了一个非常基本的表单ui,如下所示: MyApp::MyApp(QWidget*parent) :QMainWindow(父级) { ui.setupUi(这个); 连接(ui.pushButton、&QPushButton::clicked、this、&MyApp::onConnectClicked); } void MyApp::onConnectClicked() { ui.按钮->设置文本(“单击”); }

使用Qt connect时出现Visual studio警告 我使用QT5.5.2C++的Visual Studio 2019。我制作了一个非常基本的表单ui,如下所示: MyApp::MyApp(QWidget*parent) :QMainWindow(父级) { ui.setupUi(这个); 连接(ui.pushButton、&QPushButton::clicked、this、&MyApp::onConnectClicked); } void MyApp::onConnectClicked() { ui.按钮->设置文本(“单击”); },c++,visual-studio,qt,qt5,visual-studio-2019,C++,Visual Studio,Qt,Qt5,Visual Studio 2019,程序运行正常,但在这一行: connect(ui.pushButton、&QPushButton::clicked、this、&MyApp::onConnectClicked); VisualStudio一直在给我这个警告 严重性代码描述项目文件行抑制状态 警告C26444避免使用自定义构造和销毁的未命名对象(es.84)。 还有一个错误: 严重性代码描述项目文件行抑制状态 错误(活动)E2524特性测试宏的参数必须是简单标识符 在C:\Dev\5.12.2\msvc2017\u 64\in

程序运行正常,但在这一行:

connect(ui.pushButton、&QPushButton::clicked、this、&MyApp::onConnectClicked);
VisualStudio一直在给我这个警告

严重性代码描述项目文件行抑制状态
警告C26444避免使用自定义构造和销毁的未命名对象(es.84)。
还有一个错误:

严重性代码描述项目文件行抑制状态
错误(活动)E2524特性测试宏的参数必须是简单标识符
在C:\Dev\5.12.2\msvc2017\u 64\include\QtCore\qcompilerdetection.h第1349行

我做错什么了吗?请帮忙

不确定是否有帮助,但VS方面正在调查类似问题:

这是以下文件的副本:

简而言之,他们声称这些警告是错误的标志,并提出了一种解决办法:

如果使用VS2017工具链重新配置项目,请清理并 重新生成项目时,所有这些警告都将消失


更新2020-04-08: 微软已经解决了这个问题。最新的VS2019版本不再在每次使用Qt的connect()时发出警告

我将在下面保留旧的答案,以供出于任何原因无法更新的人使用

由于您按照预期的方式使用Qt,并且我们可以假设Qt的作者知道他们在做什么,因此可以合理地假设警告过于热情,可以在没有危险的情况下消除,并且不值得付出太多努力

我用来消除它的方法是将
connect()
的结果强制转换为void,即

(void)connect(ui.pushButton, &QPushButton::clicked, this, &MyApp::onConnectClicked);

演员阵容没有效果,但它明确表示有意忽略结果,这相当不具侵略性,而且会使警告消失。

谢谢你的回答。然而,您是否建议我将VS2019降级为VS2017?