• QPushButton 控制两种状态


    【1】Custom.cpp

     1 #include "CustomButton.h"
     2 
     3 CustomButton::CustomButton(QWidget* parent)
     4     : QPushButton(parent)
     5     , m_bCheckState(false)
     6 {
     7     setFixedSize(33, 33);
     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

    #-------------------------------------------------
    #
    # Project created by QtCreator
    #
    #-------------------------------------------------
    
    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): 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.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.

    顺序 选择  循环 总结

  • 相关阅读:
    PAT1037:Magic Coupon
    PAT1081:Rational Sum
    PAT1039: Course List for Student
    PAT1069:The Black Hole of Numbers
    VC++中字符串编码处理的一些相关问题
    PAT1110:Complete Binary Tree
    Java编译器003---javac -d/-sourcepath/-classpath选项
    Java编译器002---javac -source/-target选项
    Java编译器001---javac -g选项
    力扣练习010---把字符串转换成整数
  • 原文地址:https://www.cnblogs.com/Braveliu/p/9440223.html
Copyright © 2020-2023  润新知