QPushButton 控制两种状态
【1】Custom.cpp
#include "CustomButton.h" CustomButton::CustomButton(QWidget* parent)
: QPushButton(parent)
, m_bCheckState(false)
{
setFixedSize(, );
setFlat(true);
} void CustomButton::mousePressEvent(QMouseEvent *event)
{
if (m_bCheckState)
{
m_bCheckState = false;
setStyleSheet("QPushButton{background-image:url(:/new/image/mute.png);border:none;}");
}
else
{
m_bCheckState = true;
setStyleSheet("QPushButton{background-image:url(:/new/image/unmute.png);border:none;}");
} return QPushButton::mousePressEvent(event);
}
【2】Custom.h
#ifndef CUSTOMBUTTON_H
#define CUSTOMBUTTON_H #include <QPushButton> class CustomButton : public QPushButton
{
public:
CustomButton(QWidget* parent = Q_NULLPTR); protected:
void mousePressEvent(QMouseEvent* event); private:
bool m_bCheckState;
}; #endif // CUSTOMBUTTON_H
【3】pro
#-------------------------------------------------
#
# Project created by QtCreator
#
#------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, ): QT += widgets TARGET = TestState
TEMPLATE = app # The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0. SOURCES += main.cpp\
widget.cpp \
CustomButton.cpp HEADERS += widget.h \
CustomButton.h FORMS += widget.ui RESOURCES += \
image.qrc
【4】其他默认文件
Good Good Study, Day Day Up.
顺序 选择 循环 总结
QPushButton 控制两种状态的更多相关文章
- 简单实现一个button控制两种状态
<button class="btn a-bgcolor" data-toggle="tooltip" data-placement="left ...
- thinkjs——一个字段一种数字代表两种状态
问题来源: 现有一张company数据表,其中有一个字段state(-2:待审核:-1:禁用:0:正常:1:会员过期:),一般而言,在前期设计数据表的时候,会将每种状态下都用一种特定的数字代表,但是这 ...
- PE知识复习之PE的两种状态
PE知识复习之PE的两种状态 一丶熟悉PE的整体结构 从下面依次网上看.可以得出PE结构 其中DOS头有DOS头结构 也就是 IMAGE_DOS_HEADER 关于结构体的各项属性.前边已经写过了.本 ...
- 为TextView设置两种状态,程序中可以动态切换
经常会需要用文字的两种状态来表示当前系统的某两种状态.比如: 这里的第一个TextView和后两个TextView就表示了两种状态.我们可以在程序的动态的切换状态(而不是直接修改颜色) ...
- ListView下拉刷新及上拉更多两种状态
一.前言: 很多应用都会用到ListView,当然如果是iOS就会用UITableViewController,这两个控件在不同的OS上,功能是一样的,只是有些细微的不同(iOS的UITableVie ...
- 两种状态显示处理. enum , Linq AsEnumerable
1.ENUM protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { GridViewRow ro ...
- js实现点击一个按钮进行两种状态的切换(toggle)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- redis使用bit做只有两种情况的“状态“统计(如是否在线的用户统计)
1 记录在线用户数(活跃用户)? 比如redis中键a的value数据的二进制码是 0110 0110 0001 它总共有12位,在redis的位操作中,二进制中的第几位称为offset. 我们可以这 ...
- installp 软件的4种状态
安装和维护LPP软件 installp 对包提供了如下四种主要的操作: Apply Commit Reject Remove webes.4.0.0.1 commited webes.4. ...
随机推荐
- nodejs 学习二, nodejs调试
nodejs 调试,在官方文档(英文),常用的两种: 一个在chrome安装插件inspector 第二种利用编辑 这里我使用vscode编辑来调试. 主要是配置 launch.json(用vscod ...
- more 命令
[root@localhost ~]# .txt # 按页显示文件内容,能向下翻页查看
- MongoDB 新建数据库和集合 查询集合
MongoDB语法是原生ORM,根本不存在sql语句 创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间 新建数据库db1 > use db1 switched to db ...
- 008-docker-安装-tomcat:8.5.38-jre8
1.搜索镜像 docker search tomcat 2.拉取合适镜像 查询tags:https://hub.docker.com/ docker pull tomcat:8.5.38-jre8 d ...
- vue-3.0创建项目
.npm install --global @vue/cli .npm install -g @vue/cli-init .vue init webpack my-project
- [django]session设置与获取原理
admin登录 情况1: 登录后会产生一个sessionid 情况2: 自定义设置了key后,会多一个sessionid, 登录后会替换为登录后的sessionid的key值 if username ...
- Android使得Fragment 切换时不重新实例化
以前实现Fragment的切换都是用replace方法实现 public void startFragmentAdd(Fragment fragment) { FragmentManager frag ...
- 用v-if 来给不同筛选出来的todo添加不同的按钮
凡是数据里面有属性a为2的 我就给它放1,2,3 3个按钮 ,有属性为3的就没得按钮 ,属性a为1的 就给它 13两个按钮 效果如下:
- zyb的面试(广工14届比赛)
这道题目在上半年ZOJ模拟上年青岛赛区ACM题的时候就已经出现了.当时我不会写,本来想着赛后补题的最后因为懒惰又没补. 现在这道题又出现了.这是上天对我的惩罚啊!!! 所以这次铁了心也要补这题.然后我 ...
- Linux修改SSH登录端口
Linux的默认登录端口为:22,为系统安全运维都会将端口改成其它端口. 假如我们修改的端口为:3000 1.首先要配置防火墙,允许此端口通行. /sbin/iptables -A INPUT -p ...