QT QObject::connect: No such signal QDialogButtonBox::clicked(QAbstractButton * btn) in F:\qt_vs_occ\occ-cax\OCCTcam\ToolMagazineNewToolDialog.cpp:53报错
QDialogButtonBox* buttonBox = new QDialogButtonBox(this);
QPushButton* determineButton = buttonBox->addButton("确定", QDialogButtonBox::YesRole);
QPushButton* cancelButton = buttonBox->addButton("取消", QDialogButtonBox::NoRole);
QPushButton* helpButton = buttonBox->addButton("帮助", QDialogButtonBox::HelpRole);
connect(buttonBox, SIGNAL(clicked(QAbstractButton * btn)), this, SLOT(determineBtnClicked(QAbstractButton * btn)));
//connect(buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(determineBtnClicked(QAbstractButton*)));
问题解释:帮助文档上这个类有此信号,但使用的时候会报"No such signal"的错误
解决方式:重新将connect信号槽写一遍。
因为如果是直接像我一样,从qt帮助文档中复制的某个类的信号函数,那么在connect函数中,clicked的形参会是以这种形式存在"QAbstractButton * btn";如果是自己编写的connect函数,而没有通过复制,那么此处clicked的形参会是以这种形式存在"QAbstractButton* btn",两者不同在于,指针符号前面有没有空格,有空格的话就会报错,没有空格才是正确的。因此,遇到这种明明帮助文档上这个类有这个信号,运行的时候却报没有此信号的错误的时候,可以自己重新编写一下connect函数试一下