特别是,我正在为QWizard实现QWizardPage(“MyWizardPage”),并且我想从我对QWizardPage::nextId虚拟方法的重写中发出一个信号(“sigLog”)。
像这样:
class MyWizardPage
: public QWizardPage
{
Q_OBJECT
public:
MyWizardPage();
virtual int nextId() const;
Q_SIGNALS:
void sigLog(QString text);
};
int MyWizardPage::nextId() const
{
Q_EMIT sigLog("Something interesting happened");
}
但是,当我尝试这样做时,在Q_EMIT行上出现以下编译错误:
Error 1 error C2662: 'MyWizardPage::sigLog' : cannot convert 'this' pointer from 'const MyWizardPage' to 'MyWizardPage &'
最佳答案
通过在信号声明中添加“const”,可以从const方法发出信号,如下所示:
void sigLog(QString text) const;
我对此进行了测试,即使您自己实际上并未将信号实现为正常方法(即Qt可以使用它),也会编译并运行。
关于qt - 是否可以通过const方法发出Qt信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5781449/