【1】Custom.cpp

  1. #include "CustomButton.h"
  2.  
  3. CustomButton::CustomButton(QWidget* parent)
  4. : QPushButton(parent)
  5. , m_bCheckState(false)
  6. {
  7. setFixedSize(, );
  8. setFlat(true);
  9. }
  10.  
  11. void CustomButton::mousePressEvent(QMouseEvent *event)
  12. {
  13. if (m_bCheckState)
  14. {
  15. m_bCheckState = false;
  16. setStyleSheet("QPushButton{background-image:url(:/new/image/mute.png);border:none;}");
  17. }
  18. else
  19. {
  20. m_bCheckState = true;
  21. setStyleSheet("QPushButton{background-image:url(:/new/image/unmute.png);border:none;}");
  22. }
  23.  
  24. return QPushButton::mousePressEvent(event);
  25. }

【2】Custom.h

  1. #ifndef CUSTOMBUTTON_H
  2. #define CUSTOMBUTTON_H
  3.  
  4. #include <QPushButton>
  5.  
  6. class CustomButton : public QPushButton
  7. {
  8. public:
  9. CustomButton(QWidget* parent = Q_NULLPTR);
  10.  
  11. protected:
  12. void mousePressEvent(QMouseEvent* event);
  13.  
  14. private:
  15. bool m_bCheckState;
  16. };
  17.  
  18. #endif // CUSTOMBUTTON_H

【3】pro

  1. #-------------------------------------------------
  2. #
  3. # Project created by QtCreator
  4. #
  5. #-------------------------------------------------
  6.  
  7. QT += core gui
  8.  
  9. greaterThan(QT_MAJOR_VERSION, ): QT += widgets
  10.  
  11. TARGET = TestState
  12. TEMPLATE = app
  13.  
  14. # The following define makes your compiler emit warnings if you use
  15. # any feature of Qt which as been marked as deprecated (the exact warnings
  16. # depend on your compiler). Please consult the documentation of the
  17. # deprecated API in order to know how to port your code away from it.
  18. DEFINES += QT_DEPRECATED_WARNINGS
  19.  
  20. # You can also make your code fail to compile if you use deprecated APIs.
  21. # In order to do so, uncomment the following line.
  22. # You can also select to disable deprecated APIs only up to a certain version of Qt.
  23. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.
  24.  
  25. SOURCES += main.cpp\
  26. widget.cpp \
  27. CustomButton.cpp
  28.  
  29. HEADERS += widget.h \
  30. CustomButton.h
  31.  
  32. FORMS += widget.ui
  33.  
  34. RESOURCES += \
  35. image.qrc

【4】其他默认文件

Good Good  Study, Day Day Up.

顺序 选择  循环 总结

QPushButton 控制两种状态的更多相关文章

  1. 简单实现一个button控制两种状态

    <button class="btn a-bgcolor" data-toggle="tooltip" data-placement="left ...

  2. thinkjs——一个字段一种数字代表两种状态

    问题来源: 现有一张company数据表,其中有一个字段state(-2:待审核:-1:禁用:0:正常:1:会员过期:),一般而言,在前期设计数据表的时候,会将每种状态下都用一种特定的数字代表,但是这 ...

  3. PE知识复习之PE的两种状态

    PE知识复习之PE的两种状态 一丶熟悉PE的整体结构 从下面依次网上看.可以得出PE结构 其中DOS头有DOS头结构 也就是 IMAGE_DOS_HEADER 关于结构体的各项属性.前边已经写过了.本 ...

  4. 为TextView设置两种状态,程序中可以动态切换

    经常会需要用文字的两种状态来表示当前系统的某两种状态.比如:         这里的第一个TextView和后两个TextView就表示了两种状态.我们可以在程序的动态的切换状态(而不是直接修改颜色) ...

  5. ListView下拉刷新及上拉更多两种状态

    一.前言: 很多应用都会用到ListView,当然如果是iOS就会用UITableViewController,这两个控件在不同的OS上,功能是一样的,只是有些细微的不同(iOS的UITableVie ...

  6. 两种状态显示处理. enum , Linq AsEnumerable

    1.ENUM protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { GridViewRow ro ...

  7. js实现点击一个按钮进行两种状态的切换(toggle)

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  8. redis使用bit做只有两种情况的“状态“统计(如是否在线的用户统计)

    1 记录在线用户数(活跃用户)? 比如redis中键a的value数据的二进制码是 0110 0110 0001 它总共有12位,在redis的位操作中,二进制中的第几位称为offset. 我们可以这 ...

  9. installp 软件的4种状态

    安装和维护LPP软件     installp 对包提供了如下四种主要的操作: Apply Commit Reject Remove   webes.4.0.0.1 commited webes.4. ...

随机推荐

  1. Linux中的轻量级进程

    在Linux中,轻量级进程可以是进程,也可以是线程.我们所说的线程,在Linux中,其实是轻量级进程之间共享代码段,文件描述符,信号处理,全局变量时: 如果不共享,就是我们所说的进程. 进程是资源管理 ...

  2. SSH端口转发详解及实例-转载

    作者:珂儿吖 出处:http://www.cnblogs.com/keerya/ 目录 1.1 SSH端口转发的两大功能 实验一:实现SSH端口转发——本地转发 实验二.实现SSH端口转发——远程转发 ...

  3. js或jsp 获取项目路径常用方法

    可以引入一个jsp,这个jsp的内容如下: <%@page pageEncoding="UTF-8" contentType="text/javascript; c ...

  4. cxf简单例子

    cxf 这里介绍在web跟非web中的发布以及调用 准备条件: 1,导入cxf的相关jar包,以maven项目为例 pom的配置文件为 <project xmlns="http://m ...

  5. Cell complex单元复合形

    概念 (1)Piecewise linear complex (PLC) 分段线性复合形 (2)Cell complex 单元复合形 [1] (元胞复合形) (3)Linear Cell Comple ...

  6. Raid5之后安装系统,挂载磁盘

    配置RAID5 略 2.U盘安装centos系统(我的版本是centos7.0) 这一步骤网上很多,可以参考这篇:http://jingyan.baidu.com/article/359911f571 ...

  7. 向数据库中添加数据,通过se16 不能添加,通过 代码可以添加的原因

    1:  在向数据库中添加数据时,通过客户端se16 准备对 数据表进行添加数据,提示如下: 找了以下原因,如下: https://www.baidu.com/link?url=3yRtAfY1_9XG ...

  8. JS 8-2 再谈原型

    var bosn = new Student创建了Student的实例bosn.bosn的原型(__proto__)指向构造器Student的prototype属性. Student.prototyp ...

  9. 虚拟地址IP

    http://blog.csdn.net/whycold/article/details/11898249

  10. 适用于 Windows 7 SP1、Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2 的 .NET Framework 4.5.2 仅安全更新说明:2017 年 9 月 12 日

    https://support.microsoft.com/zh-cn/help/4040960/description-of-the-security-only-update-for-the-net ...