要自定义按钮形状,可以通过继承QPushButton类并重新实现其paintEvent方法来实现。以下是一个示例代码:
#include <QtWidgets>
class CustomButton : public QPushButton
{
public:
CustomButton(QWidget *parent = nullptr) : QPushButton(parent) {}
protected:
void paintEvent(QPaintEvent *event) override
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
// 绘制圆形按钮
painter.setBrush(QColor(255, 0, 0));
painter.drawEllipse(rect().adjusted(2, 2, -2, -2));
// 如果要绘制其他形状的按钮,可以根据需要修改绘制的代码
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
QVBoxLayout layout(&window);
CustomButton customButton;
customButton.setText("Custom Button");
layout.addWidget(&customButton);
window.show();
return app.exec();
}
在上面的代码中,我们定义了一个CustomButton类,继承自QPushButton,并重新实现了其paintEvent方法,用来绘制圆形按钮。您可以根据需要修改绘制的代码,来实现不同形状的按钮。