• 4819阅读
  • 2回复

[提问]关于槽的继承问题 [复制链接]

上一主题 下一主题
离线mars1114
 
只看楼主 倒序阅读 楼主  发表于: 2011-07-02
关键词: 信号与槽继承
        我从QWidget派生出了一个类Inher,然后以这个类为基类又派生出一个类In,这是在槽的使用方面碰到了一些问题
      
       Inher中的数据成员有两个QPushButton,一个QLabel。槽只写了一个pro1(),功能是点击按钮b1后在label上显示"b1“。

       In中没有添加新的数据成员,新加了一个槽pro(),功能是点击按钮b2后在label上显示"b2“。

      不过这样做In中的槽起不到作用。

      之后,我在Inher中添加了槽pro2(),用纯虚函数和虚函数分别试了两次(功能是空的),In中的pro2()就能起作用了。请问这样做哪里有问题?还是说Qt就是这样的,自己定义的基类的派生类中不能定义新槽?

      基类代码如下:


class Inher : public QWidget
{
    Q_OBJECT
public:
    Inher(QWidget *parent = 0);
    ~Inher();
protected slots:
    virtual void pro1();
    virtual void pro2() = 0;  // 该行注释掉时,功能不能运行
protected :
    QPushButton * b1;
    QPushButton * b2;
    QLabel *label;
};
描述:整个测试工程[attachment=6099]
附件: Inher.rar (3 K) 下载次数:7
离线dbzhang800

只看该作者 1楼 发表于: 2011-07-02
你不知道定义信号和槽,必须要有 Q_OBJECT 这个宏么?
离线mars1114
只看该作者 2楼 发表于: 2011-07-02
回 1楼(dbzhang800) 的帖子
哦 对!! 是这样的
谢啦~
快速回复
限100 字节
 
上一个 下一个