博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt make clickable label 制作可点击的Label控件
阅读量:6454 次
发布时间:2019-06-23

本文共 1245 字,大约阅读时间需要 4 分钟。

 

Qt中的Label标签控件的作用绝不仅仅限于显示静态文本,其实它的功能很强大,由于其有setPixmap()成员函数,故而可以当显示图片窗口使用,而且还可以实时显示摄像头捕获的图片,然后它对鼠标事件的支持却没有QWidget那样强大,很多时候我们想要QLabel捕获鼠标单击或双击的事件,它本身无法实现,我们只好写一个新的class来实现我们需要的功能,这也是C++的强大之处所在,继承特性可以让我们在原有的基础上无限增加新的特性。那么这里我们想要QLabel捕获鼠标的双击事件,我们需要新建一个类名为QtClickableLabel,继承于QLabel:

qtclickablelabel.h

#ifndef QTCLICKABLELABEL_H#define QTCLICKABLELABEL_H#include 
class QtClickableLabel : public QLabel{ Q_OBJECTpublic: explicit QtClickableLabel(QWidget *parent = 0); explicit QtClickableLabel(const QString &text = "", QWidget *parent = 0); ~QtClickableLabel();signals: void clicked();protected: void mouseDoubleClickEvent(QMouseEvent *event);};#endif // QTCLICKABLELABEL_H

 

qtclickablelabel.cpp

#include "qtclickablelabel.h"QtClickableLabel::QtClickableLabel(const QString &text, QWidget *parent)    : QLabel(parent){    this->setText(text);}QtClickableLabel::QtClickableLabel(QWidget *parent)    : QLabel(parent){}QtClickableLabel::~QtClickableLabel(){}void QtClickableLabel::mouseDoubleClickEvent(QMouseEvent *event) {    emit clicked();}

 

如果想实现捕获鼠标单击事件,只需要添加如下代码即可:

void QtClickableLabel::mousePressEvent(QMouseEvent *event) {    emit clicked();}

 

最后不要忘了在UI Designer把原来的QtLabel的控件promote 到这个QtClickableLabel,尽情享用吧~

转载地址:http://tlyzo.baihongyu.com/

你可能感兴趣的文章
Win8 使用经验之飞鸽传书
查看>>
How to set up PyQt4 for python 3.2 in Ubuntu11.10
查看>>
P1047 校门外的树
查看>>
poj1472[模拟题]
查看>>
c# 两个数组比较,将重复部分去掉,返回不重复部分
查看>>
支持IE6的树形节结构TreeTable实际应用案例
查看>>
DFA和NFA的区别
查看>>
并发检测主机ip存活脚本
查看>>
Leetcode 118 杨辉三角
查看>>
VBA中级班课时1小结
查看>>
PLS-00371: 'PAGEQUERY_PACK.CURSORTYPE' 最多允许有一个声明
查看>>
upc组队赛5 Ingenious Lottery Tickets【排序】
查看>>
HTML初级课程 (自学可懂)
查看>>
Error in deleting blocks.
查看>>
Linux 用户和用户组的命令
查看>>
操作系统 实验三、进程调度模拟程序
查看>>
NOIP2000提高组 单词接龙
查看>>
CSS常见的浏览器前缀
查看>>
【转】Eclipse中 代码提示时间修改和悬停(Hover)提示时间修改
查看>>
Tomcat log4j配置
查看>>