QT 建立信号和槽的联系(事件处理)
2024-09-06 15:29:15
Qt中事件处理机制叫做“信号”和“槽”signal &slot.
其模型为:
对象a中有一个信号signal:XXX(代表一个事件)
对象b中有一个槽slot:YYY(事件处理函数)
用conect 把他们连接起来:
connect(&a,XXX,&b,YYY)
当a中事件发生时,b中的处理函数就会被调用。
实例:
在ui界面添加点击按钮和一个label,实现当点击按钮时,label显示“helloworld”.
1.新建一个gui工程,在ui中添加控件pushbutton和label,pushbutton为对象a.
2.右键pushbutton,选择go to slot...选项,进入select signal 界面可以查看pushbutton的信号处理函数,这里选择第二个clicked(bool)作为pushbutton的signal。
3.定义一个处理函数,参数类型和signal的参数相同。
在头文件中:
private slots:
int show(bool check);
在cpp文件中:
int MainWindow::show(bool check)
{
cout<<"helloword"<<endl;
}
4.将对象a的signal和b对象的slot给连接起来。
connect(ui.pushButton,SIGNAL(click(bool)),this,SLOT(show(bool)));
这里注意SIGNAL和SLOT要大写,click()和show()中的参数类型要相同,且只写数据类型,不需要变量。
如何测试是否连接成功?
connect函数输出的是bool类型值,如果为true表示连接成功,false表示失败。
通过以上步奏就可以建立信号和槽的连接。
最新文章
- php函数fgets读取文件
- 使用JPA储存Text类型的时候 出现乱码的问题
- TCP/IP详解 笔记十
- 如何检查失败的Segment/master
- 欧拉工程第68题:Magic 5-gon ring
- error C2471: 无法更新程序数据库 vc90.pdb
- JQUERY1.9学习笔记 之基本过滤器(七) 语言选择器
- laravel5.4+vue+element-ui配置及简单使用
- 使用DOM解析XML文件,、读取xml文件、保存xml、增加节点、修改节点属性、删除节点
- pycaffe︱caffe中fine-tuning模型三重天(函数详解、框架简述)
- JavaScript中对象数组 作业
- [Codeforces441E]Valera and Number
- CPP全面总结(涵盖C++11标准)
- 5.6 C++重载下标操作符
- c++ cout、<;<; 、cin、>;>; 、endl 详解
- 7.7 服务远程暴露 - 订阅与通知(TODO)
- 转载|23个Python爬虫开源项目代码:爬取微信、淘宝、豆瓣、知乎、微博等
- Codeforces 558C Amr and Chemistry 暴力 - -
- bzoj 2818 gcd 线性欧拉函数
- [翻译] POP Facebook的动画开源库