关闭

嵌入式 QT开发使用信号和槽的机制

536人阅读 评论(0) 收藏 举报
分类:
 

Q_OBJECT宏的作用  

The Q_OBJECT macro at the beginning ofthe class definition is necessary for all classes that definesignals or slots
只有加入了Q_OBJECT,你才能使用QT中的signal和slot机制

QT的信号与槽机制介绍

http://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/signal-slot/index.html


A Small Example

A minimal C++ class declaration mightread:

class Counter

{

public:

Counter() { m_value = 0; }

int value() const { return m_value;}

void setValue(int value);

private:

int m_value;

};

A small QObject-based classmight read:

#include

class Counter : public QObject

{

Q_OBJECT

public:

Counter() { m_value = 0; }

int value() const { return m_value;}

public slots:

void setValue(int value);

signals:

void valueChanged(int newValue);

private:

int m_value;

};


比如编写事件接口等程序时,有时会出现如下问题:
在PC端成功编译,但在开发板端却显示错误:
   QObject::connect: No such slotQWidget::*******()                            
   QObject::connect: (sender name:  'unnamed')                                  
   QObject::connect: (receiver name: 'unnamed')

这时候,就必须在头文件派生类的时候,首先像下面那样引入Q_OBJECT宏:
    classMyMainWindow : public QWidget
    {
       Q_OBJECT
    ......
    }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:977262次
    • 积分:17614
    • 等级:
    • 排名:第540名
    • 原创:741篇
    • 转载:522篇
    • 译文:0篇
    • 评论:105条
    最新评论