Qt 设备按钮控件 - 模拟物理按钮
在 Qt 中,我们可以使用 QPushButton 等自带的控件来实现按钮的功能。但是在一些特定的场景下,我们可能需要使用类似于真实设备上的物理按钮,这时就可以使用自定义的 DeviceButton 控件来实现。
DeviceButton 控件通过继承 QWidget 类来实现,并在构造函数中设置了一些相关的属性:
class DeviceButton : public QWidget
{
Q_OBJECT
public:
explicit DeviceButton(QWidget *parent = nullptr);
signals:
// 定义信号
void clicked();
protected:
// 重写 mousePressEvent 和 mouseReleaseEvent 事件
virtual void mousePressEvent(QMouseEvent *event) override;
virtual void mouseReleaseEvent(QMouseEvent *event) override;
private:
bool m_pressed; // 用来记录按钮是否被按下
};
DeviceButton::DeviceButton(QWidget *parent)
: QWidget(parent)
{
setFixedSize(50, 50); // 设置按钮大小
m_presse