一、简述
在上一篇文章中我们讲述了如何实现不规则按钮( Qt简述如何实现不规则按钮),其中提到了另外一种方法就是自绘,今天就此谈一谈如何自绘实现一个圆盘式的按钮。下面先看一张效果图。
二、代码之路
其实实现很简单,就是通过Qt的QPainterPath来实现圆弧式按钮的绘制,然后通过鼠标事件实现点击效果及点击信号的发送。因为正常QPushButton或者QToolButton是自己发送clicked或者pressed、release等信号的,既然我们是通过自绘而不是继承button,那这些信号都需要我们自己来实现了,如果不知道具体按钮的某个信号是如何发送的或者是何时发送的可以参考源码。下面直接上代码。
CustomButton.h
#pragma once
#include <QtWidgets/QWidget>
class CustomButton : public QWidget
{
Q_OBJECT
public:
CustomButton(QWidget* parent = NULL);
// 设置弧长及半径;
void setRadiusValu