1,自定义一个按钮控件,使用QPainter绘制
// CircleButton.h #include <QPushButton> #include <QPainter> #include <QRegion> class CircleButton : public QPushButton { public: CircleButton(QWidget *parent = nullptr) : QPushButton(parent) { setFixedSize(60, 60); // 固定大小 } protected: void paintEvent(QPaintEvent *) override { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.setBrush(isDown() ? Qt::darkGray : Qt::gray); painter.drawEllipse(rect()); } bool hitButton(const QPoint &pos) const override { // 确保只有圆形区域可点击 return QRegion(rect(), QRegion::Ellipse).contains(pos); } };
2,在ui里面,先拖一个基础的按钮QPushButton到相应位置。
3, 右键这个QPushButton,选择“提升为”,出现下面这个窗口。
4,将提升的类名称和头文件填上去,头文件要注意路径。
随后点击添加。添加完成后,点击提升即可