什么网站可以在线做考教师岗位的题,2022永久免费的看电视软件,上海相亲网,thinkphp仿wordpress如果你有需要利用图片美化按钮的情况#xff0c;本文能帮助你。
鼠标左键按下按钮和松开#xff0c;按钮显示不同的图片。
1.按钮类
//因为此类比较简单#xff0c;1个头文件搞定#xff0c;没有cpp文件
#ifndef CUSTOMBUTTON_H #define CUSTOMBUTTON_H #include Q…如果你有需要利用图片美化按钮的情况本文能帮助你。
鼠标左键按下按钮和松开按钮显示不同的图片。
1.按钮类
//因为此类比较简单1个头文件搞定没有cpp文件
#ifndef CUSTOMBUTTON_H #define CUSTOMBUTTON_H #include QPushButton#include QPainter #include QMouseEvent #include QPixmap
class CustomButton : public QPushButton { Q_OBJECT
public: CustomButton(QWidget *parent nullptr) : QPushButton(parent) {} bool pressed1; protected: void paintEvent(QPaintEvent *event) override
{ QPainter painter(this); QPixmap pixmap; //if (isDown()) {//这个不起作用 if (pressed1true)//自己定义了个按下的布尔变量 { pixmap.load(d:/Pictures/button_forward_2.png); // 按下时的图片路径改成你自己的 qDebug()press; } else { pixmap.load(d:/Pictures/button_forword_1.png); // 释放时的图片路径 qDebug()release; } painter.drawPixmap(rect(), pixmap); } void mousePressEvent(QMouseEvent *event) override { pressed1true; update(); // 按下时重绘按钮 //qDebug()_press; } void mouseReleaseEvent(QMouseEvent *event) override { pressed1false; update(); // 释放时重绘按钮 //qDebug()_release; } }; #endif // CUSTOMBUTTON_H
2.widget调用 CustomButton类
(1头文件
#define WIDGET_H
#include QWidget#include CustomButton.h#include QVBoxLayout QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE
class Widget : public QWidget { Q_OBJECT
public: Widget(QWidget *parent nullptr); ~Widget(); void initUI(); private: Ui::Widget *ui; CustomButton *button;
}; #endif // WIDGET_H
2cpp文件
#include widget.h #include ui_widget.h
Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui-setupUi(this); initUI(); }
Widget::~Widget() { delete ui; } void Widget::initUI() { QVBoxLayout * mainlayout new QVBoxLayout(this);//指定布局属于啥组件 CustomButton *buttonnew CustomButton(this) ; button-setFixedWidth(55); button-setFixedHeight(30); mainlayout-addWidget(button);//指定布局包含啥组件 this-setLayout(mainlayout); }