可选取颜色的按钮封装
头文件:
#pragma once #include <QObject> #include <QPushButton> #include <QColorDialog> #include <QColor> #include <QDebug> class MyQPushButton : public QPushButton { Q_OBJECT public: MyQPushButton(QWidget *parent); ~MyQPushButton(); void setColor();//设置随机颜色 void setColor(QColor color);//设置特定颜色 QColor getColor() const;//获取颜色 private slots: void choiceColor(void); };
源文件:
#include "MyQPushButton.h" MyQPushButton::MyQPushButton(QWidget *parent) : QPushButton(parent) { connect(this, SIGNAL(clicked()), this, SLOT(choiceColor(void))); setAutoFillBackground(true); setFlat(true); } MyQPushButton::~MyQPushButton() { } void MyQPushButton::choiceColor(void) { QColor color = QColorDialog::getColor(Qt::white, this); if (!color.isValid()) { return; } QPalette pal; pal.setColor(QPalette::Button, color); } /*****************************************************************/ //作者:朱小勇 //函数名称:设置随机颜色 //函数参数:NULL //函数返回值:NULL //函数作用:NULL //备注:NULL /*****************************************************************/ void MyQPushButton::setColor() { QColor color(rand() % 256, rand() % 256, rand() % 256);//way2 QPalette pal; pal.setColor(QPalette::Button, color); setPalette(pal); } /*****************************************************************/ //作者:朱小勇 //函数名称:设置指定颜色 //函数参数:NULL //函数返回值:NULL //函数作用:NULL //备注:NULL /*****************************************************************/ void MyQPushButton::setColor(QColor color) { QPalette pal; pal.setColor(QPalette::Button, color); setPalette(pal); } /*****************************************************************/ //作者:朱小勇 //函数名称:获取颜色 //函数参数:NULL //函数返回值:NULL //函数作用:NULL //备注:NULL /*****************************************************************/ QColor MyQPushButton::getColor() const { return this->palette().color(QPalette::Button); }
长风破浪会有时,直挂云帆济沧海!
可通过下方链接找到博主
https://www.cnblogs.com/judes/p/10875138.html