最近我一直在学习C++和Qt4,但是我碰到了一个绊脚石。在Qt应用程序中似乎无法识别的插槽
我有以下类和执行:
class Window : public QWidget
{
public:
Window();
public slots:
void run();
private:
//...
};
和
Window::Window()
{
//...
connect(runBtn,SIGNAL(clicked()),this,SLOT(run()));
//...
}
Window::run()
{
//...
}
然而,当我试图建立并运行它,但它建立得很好,它立即退出了与消息
Object::connect: No such slot QWidget::run()
除非我做错了,Qt似乎并没有被识别nizing插槽run()
谁能请帮助?
更新:
的代码是现在:
class Window : public QWidget
{
Q_OBJECT
public:
Window(QWidget *parent = 0);
public slots:
void run();
private:
//...
};
和
Window::Window(QWidget *parent) : QWidget(parent)
{
//...
connect(runBtn,SIGNAL(clicked()),this,SLOT(run()));
//...
}
Window::run()
{
//...
}
程序还是 “意外结束”,但不再告诉我,有是没有这样的事情QWidget::run()
这段代码*直*从您的实际代码copypaste?如果你的run()插槽有参数,但你没有在SLOT宏中定义,通常会发生你描述的错误。也就是说,在运行时出现相同的错误,而不是崩溃。此外,你也应该打电话给父母的构造函数。 – rasjani 2009-09-08 20:33:53
我们不能告诉你为什么它会从你粘贴的代码崩溃。在你编写但未显示的其他代码中可能存在一个错误。 – rohanpm 2009-09-09 01:01:38
“公共插槽:”,这是如何工作的?从来没有见过这种语法 – 2009-09-09 07:30:32