c++ Qt按钮重绘成圆形
时间: 2023-07-31 19:06:41 浏览: 96
实现圆形按钮
要将Qt按钮重绘成圆形,可以通过自定义QPushButton的样式来实现。首先,创建一个继承自QPushButton的类,例如叫做RoundButton。然后,重写RoundButton的paintEvent函数来绘制圆形按钮的外观。
以下是一个示例代码:
```cpp
#include <QtWidgets>
class RoundButton : public QPushButton
{
public:
RoundButton(QWidget* parent = nullptr) : QPushButton(parent) {}
protected:
void paintEvent(QPaintEvent* event) override
{
Q_UNUSED(event);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
QPen pen(Qt::black);
painter.setPen(pen);
QBrush brush(Qt::red);
painter.setBrush(brush);
QRectF rect(0, 0, width(), height());
painter.drawEllipse(rect);
}
};
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QWidget widget;
QVBoxLayout layout(&widget);
RoundButton button;
button.setText("Round Button");
button.setMinimumSize(100, 100);
layout.addWidget(&button);
widget.setLayout(&layout);
widget.show();
return app.exec();
}
```
在这个示例中,我们创建了一个RoundButton类,继承自QPushButton,并重写了其paintEvent函数。在paintEvent函数中,我们使用QPainter来绘制圆形按钮的外观。最后,在主函数中创建RoundButton对象,并将其添加到布局中显示。
编译运行这段代码,你会看到一个圆形的按钮显示在窗口上。你可以根据需要调整按钮的大小和样式。
阅读全文