特别是,我正在为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");
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这个时,我在Q_EMIT行上得到以下编译错误:
错误1错误C2662:'MyWizardPage :: sigLog':无法将'this'指针从'const MyWizardPage'转换为'MyWizardPage&'
Dat*_*ham 52
通过在信号声明中添加"const",可以从const方法发出信号,如下所示:
void sigLog(QString text) const;
Run Code Online (Sandbox Code Playgroud)
我测试了这个并且它确实编译并运行,即使你实际上没有自己实现信号作为常规方法(即Qt没问题).