QT中采用信号槽机制实现两个label切换图片的关联
来源:互联网 发布:淘宝助手详情批量替换 编辑:程序博客网 时间:2024/04/28 01:52
昨晚想实现在两个不同的label同步切换图片,即点击其中一个label,切换其背景图片的同时另一个label的背景图片也切换成一样的,点击另一个亦然。
刚开始只是考虑到切换了,却没有考虑到同步,所以没搞定。
显然容易想到的是信号槽机制,建立连接这两个label的信号槽,传递QPixmap的参数,槽函数在接收到signal的同时设置另一个label的背景为传来的QPixmap参数。
下面说下我的具体实现过程:
假设现在要实现同步切换背景图片的两个label是label_1,label_2。
定义signals:
void clicked_label1(QPixmap pixmap);
void clicked_label2(QPixmap pixmap);
定义槽函数:
void label1Clicked(QPixmap pixmap);
void label2Clicked(QPixmap pixmap);
具体实现
void label1Clicked(QPixmap pixmap){
label_2->setQPixmap(QPixmap(pixmap));
}
void void label2Clicked(QPixmap pixmap){
label_1->setQPixmap(QPixmap(pixmap));
}
在点击label1的槽函数里面,加上
emit clicked_label1(QPixmap("图片路径"));
点击label2的槽函数里面,加上
emit clicked_label2(QPixmap("图片路径"));
然后在构造函数里面,定义连接
connect(this,SIGNAL(clicked_label1(QPixmap)),this,SLOT(label1Clicked((QPixmap)));
connect(this,SIGNAL(clicked_label2(QPixmap)),this,SLOT(label2Clicked((QPixmap)));
几点注意:
在设置mousePressEvent的时候,在点击label所在区域的时候发出点击label的signal,而且label->setMouseTracking(true);不要忘了,否则的话鼠标滑到label上了就无法监听了。
发出signal的时候,记得一定要带QPixmap参数,QPixmap必须是自己这次设置的背景图。
OK,over。
- QT中采用信号槽机制实现两个label切换图片的关联
- QT中采用信号槽机制实现两个label切换图片的关联
- QT中关于信号与槽机制的实现原理
- QT中关于信号与槽机制的实现原理
- QT中关于信号与槽机制的实现原理
- QT中关于信号与槽机制的实现原理
- QT中关于信号与槽机制的实现原理
- QT中关于信号与槽机制的实现原理
- Qt信号与槽自动关联机制
- Qt信号槽机制的实现
- Qt信号槽机制的实现
- <Qt> 在connect中使用lambda实现高效的信号/槽关联
- 【QT】:QT实现一个信号与多个槽的关联和实现多个信号与一个槽的关联
- Qt中信号和槽关联的方法
- QT的信号/槽机制
- QT的信号/槽机制
- Qt的信号槽机制
- 自己用纯C++实现简单的QT中信号与槽机制
- MOSS 2010:Visual Studio 2010开发体验(7)——AJAX Web Part
- MOSS 2010:什么是Reusable Workflow
- Spring攻略 第四章
- MOSS 2010:Visual Studio 2010开发体验(8)——Silverlight应用
- 能力测试 数列
- QT中采用信号槽机制实现两个label切换图片的关联
- 好久不写的VBA代码
- 数据库(Oracle)原理及性能调优培训笔记
- memcpy
- Windows Live is designed for you, but maybe not for your browser
- Asp.Net 后台控制div.
- Win7下IE 8内存保护可能导致ActiveX无法安装的问题及其解决方法
- hibernate annotation
- MTOM以及在WCF中的应用