QT中采用信号槽机制实现两个label切换图片的关联
2011-10-15 17:59
555 查看
点击打开链接 昨晚想实现在两个不同的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切换图片的关联
- Java实现Qt的SIGNAL-SLOT机制(保存到Map中,从而将它们关联起来,收到信号进行解析,最后反射调用)
- QT中关于信号与槽机制的实现原理
- C++11实现Qt的信号槽机制
- 【QT】:QT实现一个信号与多个槽的关联和实现多个信号与一个槽的关联
- qt 实现label部件中的图片随鼠标移动
- Qt信号与槽自动关联机制
- 回调函数实现类似QT中信号机制
- Qt实现简单图形绘制,双缓冲机制和显示SVG格式图片
- 用JS实现两个图片的小切换功能
- Qt实现图片移动(2)定时器和信号槽
- 嵌入式软件开发QT-02-简单调试、信号与槽机制、窗口切换、模态与非模态窗口
- QT中关于信号与槽机制的实现原理
- qt button以及label实现不规则图形(五种方法:使用QSS,设置Mask图片,自己画)
- jquery实现两个图片渐变切换效果的方法
- 回调函数实现类似QT中信号机制
- 实现两个小图片的相互切换
- jquery实现两个图片渐变切换效果的方法
- QT中关于信号与槽机制的实现原理