【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 else19 {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 #include5 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 guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = TestStateTEMPLATE = 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.0SOURCES += main.cpp\ widget.cpp \ CustomButton.cppHEADERS += widget.h \ CustomButton.hFORMS += widget.uiRESOURCES += \ image.qrc
【4】其他默认文件
Good Good Study, Day Day Up.
顺序 选择 循环 总结