当你接触到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. POJ 3294 出现在至少K个字符串中的子串

    在掌握POJ 2774(两个串求最长公共子串)以及对Height数组分组后,本题还是容易想出思路的. 首先用字符集外的不同字符连接所有串,这是为了防止两个后缀在比较时超过某个字符串的分界.二分子串的长 ...

  2. poj2155二维树状数组

    Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the i-th row an ...

  3. shop_list

    #!/usr/bin/env python # -*- coding: utf-8 -*- #输出商品列表,用户输入序号,显示用户选中的商品 li = ["手机", "电 ...

  4. Git相关操作及记录

    一.软件 1.下载Git客户端软件 Widows平台: https://github.com/git-for-windows/git/releases/download/v2.13.0.windows ...

  5. Day2-文件操作

    文件操作流程: 1.打开文件,得到文件句柄并赋值给一个变量: 2.通过句柄对文件进行操作: 3.关闭文件 ################################33 1.打开文件方法: a. ...

  6. 【JS中循环嵌套常见的六大经典例题+六大图形题,你知道哪几个?】

    首先,了解一下循环嵌套的特点:外层循环转一次,内层循环转一圈. 在上一篇随笔中详细介绍了JS中的分支结构和循环结构,我们来简单的回顾一下For循环结构: 1.for循环有三个表达式,分别为: ①定义循 ...

  7. java 操作 redis

    1.Java 使用 Redis 只需要下载一个jar包即可 地址:http://maven.outofmemory.cn/redis.clients/jedis/2.5.2/ 工程

  8. javaWeb学习总结(7)-会话之session技术

    什么是Session 使用Cookie和附加URL参数都可以将上一次请求的状态信息传递到下一次请求中,但是如果传递的状态信息较多,将极大降低网络传输效率和增大服务器端程序处理的难度. Session技 ...

  9. spring-定时器(1)

    先看一个例子 一.demo1(MethodInvokingJobDetailFactoryBean) 1.要执行业务类 public class BusinessReport { public voi ...

  10. java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制

    ClassLoader的工作机制 java应用环境中不同的class分别由不同的ClassLoader负责加载. 一个jvm中默认的classloader有Bootstrap ClassLoader. ...