QT项目代码去UI界面常用开发步骤

QT项目代码去UI界面常用开发步骤
     因项目开发需求,领导要求整个QT项目中不要用UI方式来实现界面,这样能保障程序运行稳定性以及代码的逻辑和可读性,先记录具体操作步骤如下:

     1、首先我们通过拖控件的方式来实现界面的设计效果,之后编译项目,运行,保障项目运行能正常打开操作界面即可。如常见的登录界面效果如下图:

   2、打开UI界面对应的头文件,由于项目编译成功后自动生成了界面UI对应的.h代码文件,如登录界面通过UI方式设计的代码文件正常来说有三个,分别是loginform.h,loginform.cpp,loginform.ui,项目编译运行后系统会根据loginform.ui文件自动生成一个ui_loginform.h。我们在项目中找到loginform.h代码文件,打开后,找到如下代码:

按住Ctrl键,然后用鼠标点击namespace Ui {class LoginForm;}代码中的LoginForm后,就会打开Debug目录下的ui_loginform.h文件,如下图:

   3、拷贝UI界面生成的头文件中的对应代码到我们的项目代码文件中,主要包括三部分代码如下。
   第一部分是代码对应的变量定义:

   
 

第二部分是界面对应的控件详细设置setupUi(QWidget * xxx)函数对应的代码:

   第三部分是翻译retranslateUi(QWidget * xxx)函数对应的代码:

 

 其中第一部分控件变量定义的代码拷贝到我们的登录界面头文件loginform.h文件中的private:代码中,如下图:

在public:下面新增初始化和翻译的函数定义:void setupUi(QWidget *LoginForm);void setupUi(QWidget *LoginForm);

然后将第二部分和第三部分的代码拷贝到loginform.cpp文件中,如图:

 4、删除头文件中和代码文件中对应的ui相关代码:

  • 在loginform.h文件中删除下述相关代码:

namespace Ui {
class LoginForm;
}

Ui::LoginForm *ui;

  • 在loginform.cpp文件中删除下述相关代码:

   a. 替换ui->为空字符串"";
   b. 删除构造函数中的,ui(new Ui::LoginForm)和代码
   c. 删除析构函数的delete ui;

 5、依次执行QTCreator软件构建菜单中的清理所有项目、执行qmake、重新构建所有项目等操作后,运行项目,发现已经成功实现了跟原有界面的项目一样的效果,至此完成整个去ui文件操作,达成了项目中以后只有.h和.cpp文件,没有.ui文件的目标。 

 

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

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

相关文章

【Docker】安全及日志管理

目录 一、Docker 安全及日志管理1.1 Docker 容器与虚拟机的区别1. 隔离与共享2. 性能与损耗 1.2Docker 存在的安全问题1.Docker 自身漏洞2.Docker 源码问题 1.3 Docker 架构缺陷与安全机制1. 容器之间的局域网攻击2. DDoS 攻击耗尽资源3. 有漏洞的系统调用4. 共享root用户权限 …

DEVICENET转ETHERNET/IP网关devicenet协议

捷米JM-EIP-DNT,你听说过吗?这是一款自主研发的ETHERNET/IP从站功能的通讯网关,它能够连接DEVICENET总线和ETHERNET/IP网络,从而解决生产管理系统中协议不同造成的数据交换互通问题。 这款产品在工业自动化领域可谓是一大利器&…

特定Adreno GPU的Android设备发生冻屏问题

1)特定Adreno GPU的Android设备发生冻屏问题 ​2)Unity版本升级后,iOS加载UnityFramework bundle闪退 3)关于RectTransfrom.rect在屏幕空间中表示的相关问题 4)Unity Mesh泄露问题 这是第345篇UWA技术知识分享的推送&a…

Java 8 Stream流:代码简洁之道

文章目录 前言一、filter二、map三、mapToInt、mapToLong、mapToDouble四、flatMap五、flatMapToInt、flatMapToLong、flatMapToDouble六、distinct七、sorted八、peek九、limit十、forEach十一、forEachOrdered十二、toArray十三、reduce十四、collect十五、min、max十六、cou…

uniApp禁止遮罩弹窗下的页面滚动

文章目录 问题解决代码 问题 最近用uniApp开发一款软件,页面是可以滚动的长列表,自定义组件弹窗遮罩出来后,滑动屏幕,页面也跟着滚动。研究了网上的解决办法 在遮罩层的最外层的view元素中加入 touchmove.stop.prevent"moveH…

Llama 2 来袭 - 在 Hugging Face 上玩转它

🤗 宝子们可以戳 阅读原文 查看文中所有的外部链接哟! 引言 今天,Meta 发布了 Llama 2,其包含了一系列最先进的开放大语言模型,我们很高兴能够将其全面集成入 Hugging Face,并全力支持其发布。Llama 2 的社…

Apache Kafka 入门教程

Apache Kafka 入门教程 一、简介简介架构 二、Kafka 安装和配置JDK安装 Kafka配置文件详解 三、Kafka 的基本操作启动和关闭Topic 创建和删除Partitions 和 Replication 配置Producer 和 Consumer 使用方法ProducerConsumer 四、Kafka 高级应用消息的可靠性保证Kafka StreamKaf…

Last Week in Milvus

Whats New 全力冲刺2.3.0发布中 Core Updates #25663 删除了 calc_distance 接口。此接口用于计算输入的向量之间的距离,但由于使用用户较少,且维护成本较高,会在2.3.0中将其删除。 #25031 大量用户反馈在standalone模式下,系统空…

将AWS S3大文件文件上传相关的API集成为js文件,功能包括 多文件并行上传、文件分片上传、断点续传、文件分片合成、上传暂停、取消上传、文件上传进度条显示

地址 https://github.com/gk-1213/easy-s3/tree/main easy-s3 将AWS S3大文件文件上传相关的API集成为js文件,功能包括多文件并行上传、文件分片上传、断点续传、文件分片合成、上传暂停、取消上传、文件上传进度条显示。 暂时不包括文件分片下载相关功能&#…

【业务功能篇54】Springboot项目常用工具类:HTTP状态码/客户端request

状态码常量类 /*** 返回状态码**/ public class HttpStatus {/*** 操作成功*/public static final int SUCCESS 200;/*** 对象创建成功*/public static final int CREATED 201;/*** 请求已经被接受*/public static final int ACCEPTED 202;/*** 操作已经执行成功&#xff0…

linux下用docker安装mysql

1.mysql Docker镜像 docker pull mysql:[版本号 或 latest]例:docker pull mysql:5.7 2.查看拉取的docker镜像 docker images3.设置 Docker 卷 docker volume create mysql-data列出 Docker 已知的所有卷 docker volume ls4.运行一个 MySQL Docker 容器 docke…

2018年全国硕士研究生入学统一考试管理类专业学位联考写作试题——解析版

2018年1月真题 四、写作:第56~57小题,共65分。其中论证有效性分析30 分,论说文35分。 56.论证有效性分析: 分析下述论证中存在的缺陷和漏洞,选择若干要点,写一篇600字左右的文章,对该论证的有…

【docker 安装】 与【docker-compose 安装】

不同的操作系统需要不同的docker安装文件:具体下载位置: Docker: https://download.docker.com/linux/static/stable/ docekr-compose:https://github.com/docker/compose/releases 1. 验证客户机器是否有docker 和docker-compose docker -…

乐维监控 | 如何快速关闭网络设备所有端口

在运维监控实践中,由于不同的运维人员可能会关注不同的监控指标,因此乐维监控在监控网络设备时,会默认开启所有的端口,尽可能多的覆盖监控指标,避免遗漏重要指标。但是,这样又会带来新的问题,在…

golang,gin框架的请求参数(一)--推荐

golang,gin框架的请求参数(一) gin框架的重要性不过多的强调,重点就gin使用中的参数传递,获取进行梳理文件,满足使用需求。 获取前端请求参数的几种方法: 一、获取参数【浏览器地址获取参数】…

微信小程序开发设置获取权限管理,摄像头权限,位置权限,用户信息权限等

在小程序开发的时候,我们总会遇到很多权限问题,比如摄像头权限,位置权限,用户信息权限等,如果不加以判断,很难给用户一个好的体验。 有一天,小明来参观一个拍照微信小程序。 他很感兴趣,看着精美的页面&am…

【论文阅读】定制化diffusion微调: DreamBooth原理

论文:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation 项目:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation 代码:Dreambooth-Stable-Diffusion 1. 任务简…

Kotlin基础(八):泛型

前言 本文主要讲解kotlin泛型,主要包括泛型基础,类型变异,类型投射,星号投射,泛型函数,泛型约束,泛型在Android中的使用。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 1.1 泛型基…

Unity XML1——XML基本语法

一、XML 概述 ​ 全称:可拓展标记语言(EXtensible Markup Language) ​ XML 是国际通用的,它是被设计来用于传输和存储数据的一种文本特殊格式,文件后缀一般为 .xml ​ 我们在游戏中可以把游戏数据按照 XML 的格式标…

istio 常见问题排查

配置校验 istioctl validate istioctl validate 可用于校验 istio 配置文件规则,即:验证YAML文件。 istioctl analyze istioctl analyze 可用于检查istio配置潜在的问题。 如,校验某命名空间下资源配置: $ istioctl analyze…