当你接触到Qt时,你会为它极为方便的跨平台方面感到吃惊,从而想尝试着使用Qt。渐渐地你会发现Qt自带的一些控件不能满足自己的需要,此时就需要我们自己定义一个属于自己的控件。总所周知,标签的风格设置类比较多,但默认的标签没有鼠标响应事件。

今天,给大家带来的是:标签按钮类。从名字就可以看出,将标签修改成按钮,从而让标签具有按钮鼠标的响应功能。

在你的Qt工程中

添加新文件:C++ Class,输入类名:ClickedLabel ,基类:QLabel。Qt会自动生成ClickedLabel.h和ClickedLabel.cpp文件。

在ClickedLabel.h中

 #ifndef CLICKEDLABEL_H
#define CLICKEDLABEL_H #include <QLabel>
//夜潇:17/06/04
class ClickedLabel : public QLabel
{
Q_OBJECT
public:
ClickedLabel( QWidget* parent = );
int MyLabelPressed;
void mousePressEvent(QMouseEvent *e);//添加鼠标响应事件
void mouseReleaseEvent(QMouseEvent *e);//添加鼠标释放事件
signals:
void clicked();//点击信号 }; #endif // CLICKEDLABEL_H

之后在ClickedLabel.cpp中的构造函数中设置默认风格(注:可以不写),给MyLabelPressed 附一个初值0;

 #include "clickedlabel.h"

 ClickedLabel::ClickedLabel(QWidget* parent) : QLabel(parent)
{
setText("作者:夜潇!"); //添加标签默认文本
setAlignment(Qt::AlignCenter); //设置默认对齐方式:中心对齐(居中)
//设置默认标签风格
setStyleSheet("ClickedLabel { background-color: rgb(143,122,102); border-radius: 10px; font: bold; color: white; }");
MyLabelPressed = ;
} void ClickedLabel::mousePressEvent ( QMouseEvent * e )
{
MyLabelPressed = ;
} void ClickedLabel::mouseReleaseEvent ( QMouseEvent * e )
{
if(MyLabelPressed)
{
emit clicked();
MyLabelPressed = ;
}
}

然后在你的Qt工程中

添加头函数:#include "clickedlabel.h"

添加私有函数(private)或者公共函数(public):ClickedLabel *Btn1;

之后再工程文件的CPP文件中实现函数就好了

Qt自定义标签按钮的更多相关文章

  1. 5.Qt自定义Button按钮的实现

     1.编写自定义按钮 MyButton.h #ifndef MYBUTTON_H #define MYBUTTON_H #include <QWidget> /** * @brief ...

  2. android自定义控件(3)-自定义当前按钮属性

    那么还是针对我们之前写的自定义控件:开关按钮为例来说,在之前的基础上,我们来看看有哪些属性是可以自定义的:按钮的背景图片,按钮的滑块图片,和按钮的状态(是开还是关),实际上都应该是可以在xml文件中直 ...

  3. jsp的三种自定义标签 写法示例

    1.自定义方法标签 引入方式示例: <%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %> 写 ...

  4. paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制

    源地址:http://blog.csdn.net/attilax/article/details/12343625 paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制 效果图: ...

  5. Java Spring Boot VS .NetCore (十一)自定义标签 Java Tag Freemarker VS .NetCore Tag TagHelper

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  6. django----过滤器和自定义标签

    模板语法之过滤器 1.default:如果一个变量是false或者为空,使用给定的默认值.否则,使用变量的值.例如: <p>default过滤器:{{ li|default:"如 ...

  7. C#自定义Button按钮控件

    C#自定义Button按钮控件 在实际项目开发中经常可以遇到.net自带控件并不一定可以满足需要,因此需要自定义开发一些新的控件,自定义控件的办法也有多种,可以自己绘制线条颜色图形等进行重绘,也可以采 ...

  8. zTree更新自定义标签>>>

    zTree>>>>>>>>>>>>>>>>>>>>>>>> ...

  9. 自定义标签+阻尼动画+圆角图片+titleBar随滑动渐隐和显示

    写这个小Demo,也是因为刚好手里没什么事然后看到很多朋友还在好奇这个阻尼界面效果,还有自定义标签,其实这个标签因为现在Google已经有推出更好使用的东西可以替代,那就是“FlexboxLayout ...

随机推荐

  1. CPP笔记_泛型编程简单总结

    本篇是基于<Essential C++>第三章泛型编程风格的一个简单总结 1 Iterator vector<string>::iterator  表明此iterator是位于 ...

  2. 局域网内补丁更新80072EE2错误

    在公网中,80072ee2通常是在进行自动更新时遇到的连接性错误.通常由于三防杀毒软件或者浏览器,代理服务器设置不正确而导致的.那么如果是在局域网中遇到该问题,该如何解决呢? 错误截图: 1.首先确认 ...

  3. 卷积神经网络CNN总结

    从神经网络到卷积神经网络(CNN)我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢?其实卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进.比如下图 ...

  4. JavaScript中undefined 和not defined

    首先呢,我们来介绍undefined,xx is not defined的区别 (创建一个html文件,在头部编写JavaScript代码) 我们先编写如下代码: <script type=&q ...

  5. LESS的一点自己的理解(2)

    上次写的一点居然忘了保存了,虽然说编辑器有自动保存的功能,但是昨天写的依然找不到了,/(ㄒoㄒ)/~~那好吧,重新开始写. 1.上篇写到了Mixins(混入),如果你仔细看了上面的例子,你就会发现其实 ...

  6. hdu1151有向图的最小顶点覆盖

    有向图的最小路径覆盖=V-二分图最大匹配. Consider a town where all the streets are one-way and each street leads from o ...

  7. 阿里云主机试用之自建站点和ftp上传所遇的2个问题

    1.Access to the requested object is only available from the local network 其实我并没有自建站点,只是使用了XAMPP来建了ap ...

  8. UISement属性

    .segmentedControlStyle 设置segment的显示样式. typedef NS_ENUM(NSInteger, UISegmentedControlStyle) { UISegme ...

  9. zabbix_server表面启动成功,但是没有进程

    [root@iZ25m1box8cZ zabbix]# /etc/init.d/zabbix_server start Starting zabbix_server (via systemctl):  ...

  10. Power Pivot表属性无法切换回表预览模式的问题

    近期Office365用户升级后解决了在Power Pivot中输入中文的问题,但是同时也带来了一个新的问题就是表属性窗口默认为“查询编辑器”模式,且无法切换回“表预览”模式. 本文和您分享在这种情况 ...