• 11470阅读
  • 5回复

No such slot QWidget::set()错误,这是什么回来 [复制链接]

上一主题 下一主题
离线duduqq
 

只看楼主 倒序阅读 楼主  发表于: 2008-04-06
— 本帖被 XChinux 执行加亮操作(2008-04-07) —
我在类中定义了一个槽:
class MainWindow:public QWidget
  {
public:
          MainWindow();

private:
            QPushButton *pushButton;
private slots:
              void set();
};

void MainWIndow::set()
{
`~~~~~~~~~~~~~~;
}


MainWindow::MainWindow()
{
  ~~~~~~~~~~~~~~~
pushButton = new QPushButton(this);
connect(pushButton,SINGAL(clicked()),this,SLOT(set()));
}


编译可以通过,程序可以运行,但是会在终端里出现
No such slot QWidget::set()
这倒底是什么回事啊,
我在class后面再加了一句
Q_OBJECT
编译就过不了,出现很多问题,槽是不是也要和信号一样一定要加这句的,不加可不可以
有谁遇到过这样的问题,怎么解决的.麻烦各位.
离线captain08
只看该作者 1楼 发表于: 2008-04-07
必须要加Q_OBJECT。
The Q_OBJECT macro must appear in the private section of a class definition that declares its own signals and slots or that uses other services provided by Qt's meta-object system
离线浪漫天使
只看该作者 2楼 发表于: 2008-04-07
除了楼上说的要注意以外,还要注意该放头文件的代码就放头文件,该放源文件的就放源文件,因为qt的moc要用到头文件的...
离线无常
只看该作者 3楼 发表于: 2008-04-07
加Q_OBJECT后要重新生成工程文件

要不就可能会出很多莫名其妙的问题
离线duduqq

只看该作者 4楼 发表于: 2008-04-07
唔,谢谢了
离线lixin198705
只看该作者 5楼 发表于: 2010-04-01
谢谢  楼主 谢谢 captain08   浪漫天使 无常
我太笨了
快速回复
限100 字节
 
上一个 下一个