把其他.ui文件拿到我的工程中使用

在Qt工程中使用工程外的ui文件的方式:作为一个类直接使用、包含到自己的类中或继承使用
将ui文件添加到工程中,作为一个类以直接使用

注:这里指使用原本不属于该工程的ui文件

第一步:在工程文件.pro中添加UI文件
在.proj文件中添加:

FORMS += PATH/ui_file_1.ui  \PATH/ui_file_2.uiFORMS表示添加ui文件到本工程中
对于多个UI文件,使用续航符’\’来连接多行

注意:应该对UI文件执行uic命令,以生成UI对应的.h文件,在.h文件中有命名空间Ui及其内部包含的ui类名称,这个命名空间和类名称可以在源文件中用来引用UI对象
第二步:在代码中引用UI文件对象

class MyClass : public QWidget
{Q_OBJECT
public:MyClass();private:Ui_Foo ui;
};

第二步:在该类的构造函数中setupUi()

MyClass::MyClass(QWidget* parent) : QWidget(parent)
{ui.setupUi(this);   //初始化并加载ui文件...;
}

**实质:将UI文件对应的ui类(通过uic工具从ui文件转得.h文件)包含到自己的类里面作为private成员来使用
继承ui对象
注意:一般来说,为了软件架构良好设计,一般不使用多继承(避免耦合、复杂性等),非用不可,应该考虑使用多次单继承来替代。

当类继承了ui类后,由于本身需要继承QWidget等类,因此为多继承。**

第一步:在自定义的类中继承Ui类
注意:Qt多继承必须将Qt库的类放到第一个,因为Qt默认要求第一个类为QObject的子类

class MyClass : public QWidget , public Ui_Foo  //多重继承
{Q_OBJECT
public:MyCLass(QWidget * parent = 0);
...
};

第二步:在构造函数中增加ui.setupUi(this)初始化Ui文件
由于继承了Ui类,即Ui类的所有方法被继承,可以直接使用而不用加上实例名称:如使用setupUi(this)而不是ui.setupUi(this)。

总结
都需要利用uic文件来将ui文件转换为C++源文件
都是通过ui类来引用UI文件对象
都需要在工程文件.pro中添加FORMS表示添加ui文件

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/realdonaldtrump/article/details/78212095

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/882432.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Palo Alto Networks Expedition 未授权SQL注入漏洞复现(CVE-2024-9465)

0x01 产品介绍: Palo Alto Networks Expedition 是一款强大的工具,帮助用户有效地迁移和优化网络安全策略,提升安全管理的效率和效果。它的自动化功能、策略分析和可视化报告使其在网络安全领域中成为一个重要的解决方案。 0x02 漏洞描述&am…

windows下安装、配置neo4j并服务化启动

第一步:下载Neo4j压缩包 官网下载地址:https://neo4j.com/download-center/ (官网下载真的非常慢,而且会自己中断,建议从以下链接下载) 百度网盘下载地址:链接:https://pan.baid…

周易解读:八卦02,八卦所代表的基本事物

八 卦02 上一节,我是讲完了八卦的卦象的画法的问题。这一节,我来尝试着去讲解八卦所代表的自然事物。 八卦是谁发明的呢?根据《周易说卦传》的说法,八卦是伏羲发明的。伏羲氏仰观天文,俯察地理,从中提取…

项目模块二:日志宏

一、代码展示 二、补充知识 1、LOG(level, format, ...) format 是用于宏识别格式化,类似于 printf("%s", str); 里面的 "%s" ... 不定参,传入宏的参数除了 level, format, 还有不确定个数的参数。 2、红色 \ 由于宏只能写在一…

链上相遇,节点之间的悸动与牵连

公主请阅 1. 返回倒数第 k 个节点1.1 题目说明1.2 题目分析1.3 解法一代码以及解释1.3 解法二代码以及解释 2.相交链表2.1 题目说明示例 1示例 2示例 3 2.2 题目分析2.3 代码部分2.4 代码分析 1. 返回倒数第 k 个节点 题目传送门 1.1 题目说明 题目名称: 面试题 02…

15分钟学 Go 第 10 天:函数参数和返回值

第10天:函数参数和返回值 目标:理解函数如何传递参数 在Go语言中,函数是程序的基本构建块。了解如何传递参数和返回值是编写高效、可复用代码的重要步骤。本文将详细讲解函数参数的类型、传递方式以及如何处理返回值,辅以代码示…

DP—子数组,子串系列 第一弹 -最大子数组和 -环形子数组的最大和 力扣

你好,欢迎阅读我的文章~ 个人主页:Mike 所属专栏:动态规划 ​ 53. 最大子数组和 最大子数组和 ​ 分析: 使用动态规划解决 状态表示: 1.以某个位置为结尾 2.以某个位置为起点 这里使用以某个位置为结尾,结合题目要求&#…

MySQL8.0主从同步报ERROR 13121错误解决方法

由于平台虚拟机宿主机迁移,导致一套MySQL主从库从节点故障,从节点服务终止,在服务启动后,恢复从节点同步服务,发现了如下报错: mysql> show slave status\G; *************************** 1. row *****…

GDAL+C#实现矢量多边形转栅格

1. 开发环境测试 参考C#配置GDAL环境,确保GDAL能使用,步骤简述如下: 创建.NET Framework 4.7.2的控制台应用 注意: 项目路径中不要有中文,否则可能报错:can not find proj.db 在NuGet中安装GDAL 3.9.1和G…

无人机之自主飞行关键技术篇

无人机自主飞行指的是无人机利用先进的算法和传感器,实现自我导航、路径规划、环境感知和自动避障等能力。这种飞行模式大大提升了无人机的智能化水平和操作的自动化程度。 一、传感器技术 传感器是无人机实现自主飞行和数据采集的关键组件,主要包括&a…

C语言复习第3章 函数

目录 一、函数介绍1.1 函数是什么1.2 C语言中函数的分类1.3 函数原型1.4 高内聚 低耦合1.5 C语言main函数的位置 二、函数的参数2.1 实参和形参2.2 函数的参数(实参)可以是表达式2.3 传值与传址(swap函数)2.4 明确形参是实参的临时拷贝2.5 void(如果不写函数返回值 默认是int)2…

python 爬虫 入门 三、登录以及代理。

目录 一、登录 (一)、登录4399 1.直接使用Cookie 2.使用账号密码进行登录 可选观看内容,使用python对密码进行加密(无结果代码,只有过程分析) 二、代理 免费代理 后续:协程,…

企业级调度器 LVS

集群和分布式基础知识 系统性能的扩展方式 当一个系统,或一个服务的请求量达到一定的数量级的时候,运行该服务的服务器的性能和资源上限, 很容易成为其性能瓶颈。除了性能问题之外,如果只部署在单台服务器上,在此服务…

gitee建立/取消关联仓库

目录 一、常用指令总结 二、建立关联具体操作 三、取消关联具体操作 一、常用指令总结 首先要选中要关联的文件,右击,选择Git Bash Here。 git remote -v //查看自己的文件有几个关联的仓库git init //初始化文件夹为git可远程建立链接的文件夹…

uniapp uni.uploadFile errMsg: “uploadFile:fail

uniapp 上传后一直显示加载中 1.检查前后端上传有无问题 2.检查失败信息 await uni.uploadFile({url,filePath,name,formData,header,timeout: 30000000, // 自定义上传超时时间fail: async function(err) {$util.hideAll()// 失败// err 返回 {errMsg: "uploadFile:fai…

SpringCloud学习:Openfeign组件实现服务调用和负载均衡

OpenFeign:服务调用与负载均衡(服务端接口) 是什么:通过OpenFeign可以实现服务调用和负载均衡 OpenFeign是一个声明性web服务客户端, 怎么用:服务提供者提取公共接口用FrignClient标注,服务调…

kernel32.dll下载地址:如何安全地恢复系统文件

关于从网络上寻找kernel32.dll的下载地址,这通常不是一个安全的做法,而且可能涉及到多种风险。kernel32.dll是Windows操作系统的核心组件之一,负责内存管理、进程和线程管理以及其他关键系统功能。因为kernel32.dll是系统的基础文件&#xff…

信息安全工程师(57)网络安全漏洞扫描技术与应用

一、网络安全漏洞扫描技术概述 网络安全漏洞扫描技术是一种可以自动检测计算机系统和网络设备中存在的漏洞和弱点的技术。它通过使用特定的方法和工具,模拟攻击者的攻击方式,从而检测存在的漏洞和弱点。这种技术可以帮助组织及时发现并修补漏洞&#xff…

【数据结构与算法】链表(上)

记录自己所学&#xff0c;无详细讲解 无头单链表实现 1.项目目录文件 2.头文件 Slist.h #include <stdio.h> #include <assert.h> #include <stdlib.h> struct Slist {int data;struct Slist* next; }; typedef struct Slist Slist; //初始化 void SlistI…

C++20中头文件ranges的使用

<ranges>是C20中新增加的头文件&#xff0c;提供了一组与范围(ranges)相关的功能&#xff0c;此头文件是ranges库的一部分。包括&#xff1a; 1.concepts: (1).std::ranges::range:指定类型为range&#xff0c;即它提供开始迭代器和结束标记(it provides a begin iterato…