要自定義按鈕形狀,可以通過繼承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方法,用來繪制圓形按鈕。您可以根據需要修改繪制的代碼,來實現不同形狀的按鈕。