1、错误代码
connect(mpActionPlay, &QAction::trigger, this ,[=]()
2、正确代码
connect(mpActionPlay, &QAction::triggered, this ,[=]()
});
QAction的点击还是要用trggered这个信号,不能用trigger,我也不知道为什么。
代码1、错误代码//重点就在&QAction::trigger这里connect(mpActionPlay, &QAction::trigger, this ,[=](){})2、正确代码connect(mpActionPlay, &QAction::triggered, this ,[=](){ });QAction的点击还是要用trggered这个信号,不能用trigger,我也不知道为什么。...
而connect写成
connect(objectA,SIGNAL(signal_1(int param)),objectB,SLOT(slot_test(int param)));
编译会通过,运行时会报错,并且无法触发槽函数
QObject::connect: No such.
另外传递参数不能带有参数名字
connect (this, SIGNAL(dataWrite(const QByteArray ) ), socket, SLOT(WriteToData(const QByteArray ) ) );
2:在 Qt 编写过程中,如多线程使用信号槽时,需要添加 Q_OBJECT,但是在添加之后发现编译老会出错。如下:
在 Qt 编写过程中,...
Object::connect: Parentheses expected, signal QAction::activated
说明我们写的connect出现了问题,在SIGNAL或者SLOT的函数中没有写括号
错误写法:
connect(ui->SaveNoteButton,SIGNAL(clicked),this,SLOT(Save_Txt));
正确写法:
connect(ui->SaveNoteButton,SIGNAL(clicked()),this,SLOT
Qt编译时
报错:
error: no matching function for call to 'MainWindow::
connect(
QAction*&, void (
QAction::*)(bool), MainWindow* const, MainWindow::MainWindow(QWidget*)::__lambda0)'});
报错原因:Qt软件版本过低,低于Qt5.4。
解决方案:在.pro文件中加入代码:
CONFIG += C++11
问题解决。
用qt编译,编译报错:
error: no matching function for call to 'MainWindow::connect(QAction*&, void (QAction::*)(bool), MainWindow* const, MainWindow::MainWindow(QWidget*)::__lambda0)'});
这是因为QT的版本太低。如果我们在写代码的时候,用到了Lambda表达式,如果QT的版本是5.4以前,需要在.pro文件中,加入这样一行代码: