• 3714阅读
  • 3回复

在QWidget中connect不成功的问题 [复制链接]

上一主题 下一主题
离线lbblscy
 

只看楼主 倒序阅读 楼主  发表于: 2009-06-25
为什么在QWidget派生的子类中无法绑定成员变量的signal到自身的slot?谢谢!
代码如下:
mywidget.h
  1. #ifndef MYWIDGET_H
  2. #define MYWIDGET_H
  3. #include <QWidget>
  4. #include <QPushButton>
  5. #include <QMessageBox>
  6. class MyWidget : public QWidget
  7. {
  8. public:
  9.     MyWidget();
  10. private:
  11.     QPushButton *btn;
  12.     QMessageBox *mb;
  13. public slots:
  14.     void doSth();
  15. };
  16. #endif // MYWIDGET_H



mywidget.cpp
  1. #include "mywidget.h"
  2. MyWidget::MyWidget()
  3. {
  4.     btn = new QPushButton(tr("Click me!"));
  5.     btn->setParent(this);
  6.     btn->show();
  7.     mb = new QMessageBox;
  8.     mb->setText("Hello");
  9.     connect(btn, SIGNAL(clicked()), this, SLOT(doSth())); //没有效果
  10.     connect(btn, SIGNAL(clicked()), mb, SLOT(show())); //执行成功
  11. }
  12. void MyWidget::doSth()
  13. {
  14.     mb->show();
  15. }
离线duduqq

只看该作者 1楼 发表于: 2009-06-26
class MyWidget : public QWidget
{
Q_OBJECT   //你少了这句了
public:
    MyWidget();
离线allblue

只看该作者 2楼 发表于: 2009-06-26
黑暗魔法
离线lbblscy

只看该作者 3楼 发表于: 2009-06-27
谢谢!
快速回复
限100 字节
 
上一个 下一个