signals/slots(信号/槽)
2011-08-23 23:45
239 查看
QT-- write once ,compile anywhere.
2011-08-23 星期二 雨(处暑)
Qt的核心机制————信号-槽机制,区别于其他GUI工具的最主要特征。
信号(signal):
当某个信号所对应的客户或其他所有者的内部状态发生改变时,信号被一个对象发射。只有定义过这个信号的类及其派生
类能够发射这个信号。
槽(slot):
被用于接收信号,它们通常是类中的成员函数,一个槽并不知晓是否有一个信号与自己联系,同样,包含有槽函数的对象
也对通信机制一无所知,它们也可以作为一个独立的软件构件。
example:
头文件
主函数
2011-08-23 星期二 雨(处暑)
Qt的核心机制————信号-槽机制,区别于其他GUI工具的最主要特征。
信号(signal):
当某个信号所对应的客户或其他所有者的内部状态发生改变时,信号被一个对象发射。只有定义过这个信号的类及其派生
类能够发射这个信号。
槽(slot):
被用于接收信号,它们通常是类中的成员函数,一个槽并不知晓是否有一个信号与自己联系,同样,包含有槽函数的对象
也对通信机制一无所知,它们也可以作为一个独立的软件构件。
example:
头文件
/*signaltest.h*/ #ifndef SIGNALTEST_H #define SIGNALTEST_H #include <QObject> class myTest :public QObject { Q_OBJECT public: myTest() { m_value = 0; } int getvalue() { return m_value; } public slots: //槽函数的定义 //槽函数就是类的成员函数,可以将槽函数当做是普通的成员函数来使用 //槽函数可以和特定的信号(其他槽函数)进行关联(连接),使得当特定的对象发处指定的信号的时候,自动的调用该槽函数 //槽函数一般为void类型的返回,可以带参数也可以不带 void setvalue(int new_value) { if(new_value != m_value) { m_value = new_value; //emit用来发出指定的信号 emit valueChanged(m_value); //发送信号 } } signals: //定义信号 //信号为void类型返回值的函数,可以传递参数,并且在类中不需要函数的实现 //信号函数的实现由MOC自动完成 void valueChanged(int new_value); private: int m_value; }; #endif // SIGNALTEST_H
主函数
#include <QApplication> #include <QDebug> #include "signaltest.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); myTest x, y; qDebug()<<"x.m_value = "<<x.getvalue(); qDebug()<<"y.m_value = "<<y.getvalue(); //信号和槽函数必须进行关联 //关联以后,当特定的对象(sneder)发出了指定的信号的时候,指定的对象(recerver)会自动的执行相关联号的槽函数(或者发出相关联的信号) QObject::connect(&x, SIGNAL(valueChanged(int)), &y, SLOT(setvalue(int))); x.setvalue(123); qDebug()<<"x.m_value = "<<x.getvalue(); qDebug()<<"y.m_value = "<<y.getvalue(); QObject::connect(&y, SIGNAL(valueChanged(int)), &x, SLOT(setvalue(int))); y.setvalue(234); qDebug()<<"x.m_value = "<<x.getvalue(); qDebug()<<"y.m_value = "<<y.getvalue(); //return app.exec(); return 0; }
相关文章推荐
- 2.2深入信号和槽(Signals and Slots in Depth)
- QT中connect连接信号signals和槽slots机制
- 解析Qt的信号-槽机制是如何工作的 - How Qt Signals and Slots Work
- 信号(signals)和槽(slots)
- 信号(signals)和槽(slots)
- Qt 定义信号 signals 和 槽 slots
- 信号(signals)和槽(slots) 精…
- QT的信号和槽机制:Signals and Slots
- 信号(signals)和槽(slots)
- Qt:信号与槽(Signals and Slots) 上
- 信号(signals)和槽(slots)
- Qt:信号与槽(Signals and Slots) 下
- PyQT信号槽_学习笔记 (Signals/Slots)
- 深入信号和槽(Signals and Slots in Depth)
- 2.2深入信号和槽(Signals and Slots in Depth)
- 深入信号和槽(Signals and Slots in Depth)
- Qt:信号与槽(Signals and Slots) 上
- 信号(signals)和槽(slots) 精讲
- Qt:信号与槽(Signals and Slots) 下
- PyQT信号槽_学习笔记 (Signals/Slots)