Qt 自定义MoveButton移动按钮

Qt 自定义MoveButton移动按钮

之前使用了painter自绘制按钮进行拖拽移动。

在这里,MoveButton继承QPushbutton,实现鼠标移动拖拽,键盘上下键位移。

头文件MoveButton.h

#ifndef MOVEBUTTON_H
#define MOVEBUTTON_H

/***********************************************************
 *版权声明:Copyright (c) 2019 Kongdemin. All rights reserved.
 *许可版本:Corporation & Enterprise
 *文件名称:MoveButton.h
 *文件功能:can move button
 *创建作者:kongdemin
 *修改时间:2019-08
 *修订说明:版本 01
************************************************************/

#include <QPushButton>
#include <QWidget>

class MoveButton : public QPushButton
{
    Q_OBJECT
public:
    explicit MoveButton(QWidget *parent = nullptr);

signals:

public slots:

protected:
    ///
    /// \brief mousePressEvent
    /// \param event
    ///
    void mousePressEvent(QMouseEvent *event);
    ///
    /// \brief mouseMoveEvent
    /// \param event
    ///
    v
是的,Qt自定义对话框可以添加按钮。您可以使用Qt提供的QPushButton类来创建按钮,并将其添加到自定义对话框中。通过设置按钮的文本、图标和信号槽,您可以实现按钮的功能和交互。 以下是一个简单的示例代码,演示如何在Qt自定义对话框中添加按钮: ```cpp #include <QDialog> #include <QPushButton> #include <QVBoxLayout> class CustomDialog : public QDialog { Q_OBJECT public: CustomDialog(QWidget *parent = nullptr) : QDialog(parent) { // 创建按钮 QPushButton *okButton = new QPushButton("OK", this); QPushButton *cancelButton = new QPushButton("Cancel", this); // 创建布局 QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(okButton); layout->addWidget(cancelButton); // 连接按钮的信号槽 connect(okButton, &QPushButton::clicked, this, &CustomDialog::onOkClicked); connect(cancelButton, &QPushButton::clicked, this, &CustomDialog::onCancelClicked); } signals: void okClicked(); void cancelClicked(); private slots: void onOkClicked() { emit okClicked(); close(); } void onCancelClicked() { emit cancelClicked(); close(); } }; ``` 在这个示例中,我们创建了一个名为CustomDialog的自定义对话框类。在构造函数中,我们创建了两个按钮(OK和Cancel),并将它们添加到垂直布局中。然后,我们连接了按钮的clicked信号到对应的槽函数,以便在按钮被点击时执行相应的操作。 您可以根据需要自定义按钮的样式、位置和功能。希望这个示例能够帮助您理解如何在Qt自定义对话框中添加按钮
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值