QT中signal和slot
来源:互联网 发布:数据库怎么学习 编辑:程序博客网 时间:2024/04/28 13:59
说起QT中的信号和槽真的是一个很牛X的设计 它有效的降低了类与类之间的耦合程度
主要的功能是 一个类来发送信号 另一个类收到指定的信号后调用槽函数 两个类之间可以一点关系都没有 可能有人会问没有任何关系可是怎么实现收到信号就可以调用槽函数的呢?
当然这都归功于QObject类的静态函数connect的功能 下面看一个例子:
类 Send 信号发送类
class Send : public QObject //1 要定义自己的信号 必须要继承QObject
{
Q_OBJECT //2 必须要在类中加上Q_OBJECT
public:signals: // 定义信号前的修饰
void SendSignal(); // 信号函数不需要实现 只写出声明即可 而且 返回值必须void 参数不限
}
类 Recv 处理信号的类
class Recv : public QObject // 1 要定义槽函数也同样要继承QObejct
{
Q_OBJECT
public slots:
void RecvSignal(); // 处理信号的槽函数
}
void Recv::RecvSignal()
{
qDebug("收到信号了....");
}
现在信号的类和处理信号的类都有了 只需要将信号和槽函数关联起来就可以正常工作了
类 main.cpp
int main(int args,char* argv[])
{
QApplication app(args,argv);
Send s;
Recv r;
QObejct::connect(
&s, SIGNAL(SendSignal()) //发送信号的类指针 和 信号函数
&r, SLOT(RecvSignal())) // 处理信号的类指针 和 槽函数
return app.exec();
}
关联完成以后只需要在发送信号的类中去调用 emit SendSignal(); 那么对应的处理信号的类就会调用 指定好的槽函数
- QT中signal和slot
- QT中的SIGNAL和SLOT
- Qt中的SIGNAL和SLOT
- Qt的slot和signal
- QT中signal和slot的一些注意点保存
- [转载]QT中emit,signal,slot
- Qt中的Signal和Slot机制
- Qt的Signal和Slot机制(一)
- Qt的Signal和Slot机制(二)
- QT的signal和slot的理解
- qt信号signal和槽slot机制
- Qt的signal和slot使用心得
- Qt的线程和 signal-slot
- qt信号signal和槽slot机制
- qt信号signal和槽slot机制
- Qt的Signal和Slot机制(一)
- qt信号signal和槽slot机制
- qt信号signal和槽slot机制
- Plsql基础(数据类型,控制语句)
- 将开发的Web应用部署为Weblogic的默认应用
- 项目心得
- Unix 多线程
- ScrumWorks安装和升级文档(Windows)新装篇
- QT中signal和slot
- The try, catch, and throw Statements
- 用Zend Stuido 的WSDL编辑器
- Ubuntu vimrc配置文件 vim 设置行号,缩进距等
- bat批处理文件的一个例子
- haslayout综合
- QT绘图
- 属性android:gravity和android:layout_gravity的区别
- 杭电2028-2032总结