QpushButton绘制圆角矩形并绘制背景颜色

要在QPushButton的paintEvent中绘制按钮的颜色,可以创建一个自定义的QPushButton类,并重写它的paintEvent函数。在paintEvent函数中,可以使用QPainter来绘制按钮的背景颜色。

以下是一个简单的示例代码,演示如何在自定义的QPushButton类中绘制按钮的颜色:

cpp 复制代码
#include <QApplication>
#include <QPushButton>
#include <QPainter>

class CustomButton : public QPushButton {
public:
    CustomButton(QWidget *parent = nullptr) : QPushButton(parent) {}

protected:
    void paintEvent(QPaintEvent *event) override {
        QPushButton::paintEvent(event);

        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing); // 抗锯齿
        painter.setBrush(QColor("#ff0000")); // 设置按钮的背景颜色
        painter.drawRect(rect()); // 绘制按钮的背景
        // 在按钮上手动绘制文本,颜色为按钮文本颜色
        painter.setPen(palette().color(QPalette::ButtonText));
        painter.drawText(rect(), Qt::AlignCenter, text());
    }
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    CustomButton button("Custom Button");
    button.resize(200, 50);
    button.show();

    return app.exec();
}

在这个示例中,我们创建了一个名为CustomButton的自定义QPushButton类,并重写了它的paintEvent函数。在paintEvent函数中,我们使用QPainter来绘制按钮的背景颜色。在示例中,我们将按钮的背景颜色设置为红色。

你可以根据需要自定义paintEvent函数以实现你想要的按钮样式和外观。

相关推荐
似水এ᭄往昔18 小时前
【Qt】--Qt概述
开发语言·c++·qt
人还是要有梦想的20 小时前
Qt WebEngine需要MSVC进行编译运行,QT如何用MSVC编译(包含64位和32位)
开发语言·qt·msvc
程序leo源20 小时前
Qt界面优化详解
linux·c语言·开发语言·c++·qt·c#
郝学胜-神的一滴20 小时前
Qt 高级开发 017:中文乱码
开发语言·c++·qt·程序人生·用户界面
誰能久伴不乏1 天前
【Qt 架构实战】从零手写工业级 Qt 日志系统:底层拦截与架构原理解析
qt·架构·日志
学习,学习,在学习1 天前
Modbus TCP 协议深度解析与 Qt 实战指南
网络·c++·qt·tcp/ip·modbus·qt5
Kelvin_Ngan1 天前
Qt vs2013 Qt modules设置无效
qt
一然明月2 天前
qt基本用法
开发语言·qt
代钦塔拉2 天前
Qt QThread最标准Worker线程用法(零崩溃、零内存泄漏)
qt
神仙别闹2 天前
基于QT(C++)+Sqlite3实现单词消除游戏系统
c++·qt·sqlite