要实现圆形的按钮,可以使用QAbstractButton的派生类QPushButton,并重写它的paintEvent函数。具体代码如下:

#include <QApplication>
#include <QPushButton>
#include <QPainter>

class RoundButton : public QPushButton
{
public:
    explicit RoundButton(QWidget *parent = nullptr)
        : QPushButton(parent)
    {
        setFixedSize(50, 50);
    }

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

        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing, true);

        if (isDown()) {
            painter.setBrush(Qt::gray);
        } else {
            painter.setBrush(Qt::lightGray);
        }

        painter.drawEllipse(rect());
    }
};

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

    RoundButton button;
    button.show();

    return a.exec();
}

在这个例子中,我们创建了一个名为RoundButton的派生类,它继承自QPushButton。在构造函数中,我们设置了按钮的固定大小为50x50。在paintEvent函数中,我们使用QPainter来绘制按钮的外观。我们使用drawEllipse函数来绘制一个圆形,并根据按钮的状态来设置不同的颜色。最后,在main函数中,我们创建了一个RoundButton对象并显示出来。

你可以根据自己的需要调整按钮的大小和颜色

qt实现圆形buttom

原文地址: https://www.cveoy.top/t/topic/it1r 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录