Qt5自定义控件-Qt Designer中直接拖动

效果:20240102_104733.gif
以下以新建一个自定义按钮为例。
CSDN免积分资源

  1. 新建一个Qt项目,选择“其他项目”->"Qt4设计师自定义控件“

image.png

  1. 填入项目名称: CustomPushButton。勾选构建的套件,MinGW构建的控件不能够在MSVC编译器下的项目使用,同样MSVC构建的控件不能够在MinGW编译器下项目使用。
    在这里插入图片描述

  2. 点击下一步,修改控件类名称,会自动生成其他的输入内容,可以根据自己的需求进行修改,例如可以自定义这个控件的显示图标。

image.png

  1. 切换到“说明”选项卡,填入组名称。

image.png
组名称是在Qt Designer中控件所属的组,如下:
image.png

  1. 点击下一步,填入插件名称,可以自己定义。后面默认点击下一步

image.png

  1. 工程创建完成后我们需要对项目文件进行一些修改。首先是“customqpushbutton”下的头文件
    在这里插入图片描述

    修改为:
#ifndef CUSTOMPUSHBUTTON_H
#define CUSTOMPUSHBUTTON_H

#include <QWidget>
#include <QPushButton>
#include <QtUiPlugin/QDesignerExportWidget>


class QDESIGNER_WIDGET_EXPORT CustomPushButton : public QPushButton
{
    Q_OBJECT

public:
    CustomPushButton(QWidget *parent = 0);
};

#endif // CUSTOMPUSHBUTTON_H
  1. 修改项目头文件中的“customqpushbuttonplugin.h”文件。

#include <QDesignerCustomWidgetInterface>

修改为

#include <QtUiPlugin/QDesignerCustomWidgetInterface>

image.png

  1. 此时即可对这个自定义按钮添加一些自定义的属性。例如我们添加一个按钮字体大小的属性:fontSize

控件的属性有读和写两个方法。
我们在custompushbutton.h中定义属性:

Q_PROPERTY(int fontSize READ getFontSize WRITE setFontSize)

添加读写两个方法和字体大小成员变量

private:
    int getFontSize() const;

    void setFontSize(const int &size);
    
private:
    /// 字体大小
    int fontSize = 12;
int CustomPushButton::getFontSize() const {
    return fontSize;
}

void CustomPushButton::setFontSize(const int &size) {
    fontSize = size;
    this->setStyleSheet(tr("QPushButton{font-size:%1px;}").arg(fontSize));
    this->update();
}
  1. 自定义属性完成之后即可开始对项目编译,选择你编译器,点击构建
    在这里插入图片描述

  2. 构建完成后即可在项目编译文件夹中找到生成的dll文件

image.png

  1. 我们将生成的这个dll文件放到Qt的designer文件夹中

image.png

  1. 此时打开Qt designer,即可在控件栏找到我们刚才新建的按钮控件

image.png
将这个控件拖动到我们的窗口,可以在属性编辑器中看到我们添加的字体大小的属性,修改这个属性,可以观察到控件的字体大小发生了变化。
image.png

  1. 此时我们已经完成了对自定义控件的封装。当我们希望引用这个控件到我们的项目中时,需要对其dll库和头文件进行引用。即在新项目的头文件中。
  2. 将头文件custompushbutton.h和生成的dll库放到我们新建的项目文件夹中(或者其他的路径),在新项目的pro文件中引用dll库,并添加头文件路径,如下:
# 自定义控件头文件&库文件
INCLUDEPATH += $$PWD/custom/include

# 按照debug、release区分库名称,MinGW和MSVC调用不同文件夹库
CONFIG(debug, debug|release){
    win32-g++ {
        LIBS += -L$$PWD/custom/MinGW -lcustompushbuttond
    }
    else:msvc {
        LIBS += -L$$PWD/custom/MSVC -lcustompushbuttond
    }
}
else {
    win32-g++ {
        LIBS += -L$$PWD/custom/MinGW -lcustompushbutton
    }
    else:msvc {
        LIBS += -L$$PWD/custom/MSVC -lcustompushbutton
    }
}
你可以按照以下步骤来开发自定义控件: 1. 创建一个新的 Qt 项目:打开 Qt Creator,选择 "File" -> "New File or Project",选择 "Qt Widgets Application",然后点击 "Choose"。为你的项目选择一个合适的名称,并设置存储位置。 2. 添加一个新的自定义控件类:在项目资源管理器,右击你的项目,选择 "Add New" -> "C++ Class"。在弹出的对话框,选择 "Qt" 类型,并选择 "Qt Widget" 作为基类。为你的自定义控件选择一个合适的名称,然后点击 "Next"。最后点击 "Finish" 完成创建。 3. 实现自定义控件的功能:打开你刚创建的自定义控件类的头文件(.h 文件),在类的声明添加你需要的成员变量和函数。然后打开实现文件(.cpp 文件),实现这些函数的功能。 4. 设计自定义控件的外观:打开 Qt Designer,将你的自定义控件拖拽到主窗口。然后使用 Qt Designer 的工具栏来设计和布局你的控件。你可以设置控件的大小、位置、背景色等属性。 5. 在主窗口使用自定义控件:打开主窗口类的头文件(.h 文件),包含你的自定义控件的头文件。然后在类的声明添加一个成员变量来保存自定义控件的实例。在主窗口的构造函数创建自定义控件的实例,并将其添加到主窗口的布局。 6. 使用和测试自定义控件:在主窗口类的实现文件(.cpp 文件),使用你的自定义控件的成员变量来访问和操作控件。你可以设置控件的属性、连接信号和槽函数等。然后编译和运行你的项目,测试自定义控件的功能和外观是否符合预期。 这是一个简单的自定义控件开发教程的概述,你可以根据具体需求进行进一步的学习和扩展。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

taciturn丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值