首页 程序笔记 Qt自定义控件的开发流程

Qt自定义控件的开发流程

前言

Qt自定义控件是界面开发中经常使用到的,在Qt开发中,一方面可以直接在工程中自己定义一些控件给当前够工程使用,另一方面,也可以专门制作一些控件库给其他项目使用,下面就分别来介绍这两种Qt自定义控件的方式。

项目中自定义控件创建步骤

项目中自定义控件,主要是方便在当前项目中,将界面的功能通过分离控件的方式分模块进行开发。
先创建一个QtWidget项目,然后在项目中,新建文件-选择“Qt 设计师界面类”

下一步,Template选择“Widget”,如下图:

下一步,填写控件的名称,这里取名为“MyControl”。

创建完成以后,会直接来到UI设计界面。我们往里面拖一个QLabel和QLineEdit,然后把控件调整到你想要的大小:

然后,在项目的主界面或者需要使用自定义控件的界面中,拖入一个Container中的Widget到界面,然后右键,点击“提升为”。

填写类名“MyControll”,单击“添加”按钮,如下图:


编译并运行项目,就可以在主界面中看到自定义的控件的显示了,如下图:

我们想在QLineEdit控件有输入时做一些操作,那么我们就需要在自定义控件的构造函数中连接信号槽。如下所示:

#include mycontrol.h
#include ui_mycontrol.h

MyControl::MyControl(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MyControl)
{
    ui-setupUi(this);
    connect(ui-lineEdit, SIGNAL(textChanged(const QString )),this, SLOT(customSlot()));
}

MyControl::~MyControl()
{
    delete ui;
}

void MyControl::customSlot()
{

}

自定义控件库

自定义控件库,主要是创建一个控件库,在其他项目中的Designer设计界面中直接拖入使用。

Qt Creator的版本

先查看Qt Creator的版本,后续在创建和使用自定义控件也需要一样的版本号。

创建控件库

创建一个“Qt4 设计师自定义控件”的项目,如下图:

输入项目的名称,这里命名为“MyControl”

下一步,输入自定义控件类列表,这里随便输入一个“MyControl”类,后面不用这里创建的类。

一路点击下一步,到完成创建,此时,项目中有一个“MyControl”类的文件,将“mycontrol.h”和“mycontrol.cpp”都删除掉。然后,在项目中新建文件,选择“Qt设计师界面类”,如下:

创建名为“MyControl”的Widget,然后,进入UI设计界面,修改mycontrol.h文件的内容如下:

其中,QDESIGNER_WIDGET_EXPORT 在头文件 #include QtDesigner/ QtDesigner 中。
编译Release模式的库,只能编译Release模式的控件库才能被creator或者Designer识别,此时会生成dll和lib文件。
编译器的选择需要与前面查看的Qt Creator版本一致,这里选择“Desktop Qt 5.9.0 MSVC2015 32bit”。

使用自定义控件库

将编译好的dll文件放到如下目录中,这个目录是Qt安装的目录,根据自己Qt的版本和安装路径找到对应路径。

重新打开QtCreator,创建一个Widget项目,在设计器中就可以看到自定义窗口部件“MyControl”,此时,就可以将自定义可控件拖入界面中了,如下图:

虽然此时可以将自定义控件拖入界面中,但编译会提示找不到“mycontrol.h”文件。在项目根目录创建一个include的目录,将刚才编译的dll,lib,以及mycontrol.h文件都放在这里面,然后,在项目的.pro文件中添加如下内容:

INCLUDEPATH += $$PWD/include
LIBS += $$PWD/include/mycontrolplugin.lib

运行测试项目,即可看到自定义的控件在界面中显示,如下图所示:

4

站心网

前言 Qt自定义控件是界面开发中经常使用到的,在Qt开发中,一方面可以直接在工程中自己定义一些控件给当前..

为您推荐

一文搞懂SaaS架构建设流程:业务战略设计、架构蓝图设计、领域系统架构设计、架构治理与实施

大家好,我是汤师爷~SaaS架构建设是一项复杂的系统工程,不仅需要技术层面的实现,更要从业务战略、架构设计、治理与实施等多个维度进行全面规划。一个成功的SaaS架构可以帮助企业降低IT成本、提升业务灵活性、加快..

前端开发必备网站

1.MDN开发者文档网址:https://developer.mozilla.org/zh-CN/2.CSS教程:https://www.schoolw3c.com/html-css/css/3.node中文网:http://cnodejs.org/getstart4.JavaScript教程网:https://zh.javascript.info/5.web开..

10款.NET开发中推荐的代码分析和质量工具

以下是10款.NET开发中常用的代码分析和质量工具列表,以及它们的主要功能和使用场景:1. SonarQube简介:一个流行的开源静态代码分析平台,用于检测代码中的漏洞、错误、技术债务等问题。主要功能:支持代码质量监测..

.NET 游戏开发框架有哪些?

在游戏开发领域,.NET 框架因其强大的功能和灵活性而广受欢迎。对于希望使用 .NET 进行游戏开发的开发者来说,了解可用的框架是至关重要的。以下是一些流行的 .NET 游戏开发框架:1. Unity: 尽管 Unity 主要使用 C# ..

用Blazor开发App应用可行吗?

使用 Blazor 开发 App 应用是可行的,并且已成为跨平台应用开发的一种强大选择,特别适合在 Web、移动端(iOS、Android) 和 桌面端 上创建应用。Blazor 是一个支持使用 C# 和 .NET 的框架,开发者可以编写一套代码..

前端开发有必要学习Blazor吗?

前端开发者是否需要学习 Blazor 取决于你的技术栈、职业目标和项目需求。Blazor 是一个由 .NET 支持的框架,允许开发者使用 C# 进行前端开发,这对专注于 JavaScript 的传统前端开发者而言可能具有不同的吸引力和适..

.NET开发中常见的异常报错原因和解决方法?

在 .NET 开发中,常见的报错通常涉及代码编写、配置和运行时环境。以下是一些常见的报错类型及其解决建议:1. NullReferenceException原因:尝试访问空对象的成员。解决:在访问对象之前检查是否为 null,可以使用 C..

chrome 开发者工具如何查看元素:hover时的样式

在 Chrome 开发者工具中查看元素的 :hover 样式,可以通过以下步骤实现:打开开发者工具:右键点击页面中的元素,然后选择“检查(Inspect)”或按下 F12 或 Ctrl + Shift + I (Windows) / Cmd + Option +..

十大前端开发框架

编者按:考虑到英文原文的长度以及可读性,十大前端开发框架将分成上下两部分呈现给大家。上半部分着重讲的是Bootstrap家族框架,第二节将会跟大家分享更多其他的框架。随着互联网的不断成熟以及我们越来越多的用各..

尤雨溪成立VoidZero 成前端开发主流框架

尤雨溪和他的虚空帝国:VoidZero,一场前端的创世纪!2024年初秋,一个名字,VoidZero,如同代码中突然插入的一行神秘指令,瞬间扰乱了前端世界的平静。而这行指令的编写者,正是前端界的传奇,Vue.js之父—&md..

针对 Go 语言开发的 SQL 驱动模拟库

数据库交互是几乎所有应用程序不可或缺的一部分,开发者们常常需要对数据库进行各种操作,包括插入、更新、删除和查询等。然而,在开发过程中直接对真实数据库进行操作不仅耗时耗力,还可能带来数据一致性和安全性的..

从事软件开发工作的一些感悟

随着科技的飞速发展,计算机领域成为了一个充满机遇和挑战的领域。对于计算机这个行业,我一直有着浓厚的兴趣,这份兴趣驱使我不断学习,不断成长。在这篇文章中,我将分享我的编程经历以及一些建议,希望能够给那些..

11款免费.NET开发工具

HTML5,jQuery,JavaScript等等这些热门技术,受到了开发者们的强烈追捧,有了这些开发工具也为开发者们减轻了许多负担。本文为开发者介绍了11款.NET框架,这些框架有很多优点,比如提供用户界面,数据访问,数据库..

c#使用MongoDB开发LBS应用

MongoDB下载地址 http://www.mongodb.org/downloads .NET驱动 https://github.com/mongodb/mongo-csharp-driver MongoDB常用命令: 成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据..

ASP.NET Core主机和应用启动流程

主机主要负责Web应用程序的启动和生存期的管理,配置服务器和请求处理管道。主机配置日志,依赖关系的注入。主机实际上是一个封装了应用资源的对象。创建主机生成器>配置主机>创建主机>运行主机Host有两种,通用主机..

程序员开发人员常用工具和网站

给大家分享一些程序员开发人员常用工具和网站,我相信这里总有一款工具适合你。排名不分先后~Visual Studio CodeVisual Studio Code官网地址:https://code.visualstudio.com/Visual Studio Code重新定义和优化了代..

VSCode开发ASP.NET网站

Visual Studio Code(VSCode)是一个轻量级的代码编辑器,非常适合开发ASP.NET网站,特别是ASP.NET Core项目。以下是在VSCode中开发ASP.NET网站的一般步骤:安装Visual Studio Code: 如果你尚未安装VSCode,请从其..

在VSCode中开发ASP.NET网站的示例

在 VSCode 中开发 ASP.NET 非常简单。你只需要安装一些必要的扩展并创建一个 ASP.NET 项目。安装扩展要使用 VSCode 开发 ASP.NET,你需要安装以下扩展:C# for Visual Studio Code:此扩展提供了 C# 语言支持,包括..

.NET Core开发常用命令

在ASP.NET Core开发中,以下是一些常用的命令:dotnet new:创建一个新的项目或项目文件。dotnet new web -n MyWebApp:创建一个新的Web应用程序项目。dotnet new mvc -n MyMvcApp:创建一个新的MVC应用程序项目。do..

C#微信公众平台access_token的获取存储与更新

一、什么是access_token? access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效。由于获取access_to..

发表回复

返回顶部