Qt入门学习——Qt Creator 中 ui 文件和 Qt 代码关系

article/2025/10/21 14:39:52

通过《Qt Creator的使用》的学习,我们可以借助 Designer(界面设计器)快速设计界面。


此例子 ui 内容如下(只是简单添加了一个按钮):



工程的代码目录结构如下:



最终在工程所在目录会生成一个 ui 文件:



此 ui 文件实际上是xml 文件:



当我们编译 Qt 程序代码,Qt Creator 用 uic 工具把 ui 文件的内容转换成 C++ 代码,在工程目录同一级目录的 build- 目录下自动生成 ui_类名.h 文件,如本例子中的 ui_mywidget.h,是由 mywidget.ui 利用uic 工具转换而成,只要通过Designer 修改了图形界面里的内容,ui_mywidget.h 也会跟着自动同步更新内容,ui_mywidget.h 是自动生成,用户写代码时可以不用关心其实现过程



接下来我们一起分析一下此 ui_mywidget.h 和 Qt 程序代码如何关联起来(即 ui 文件和 Qt 代码关系)。


mywidget.h 中自动多了一个命名空间的声明,类中多了 ui 指针对象成员:



mywidget.h 对应的 mywidget.cpp 实现过程如下:



接下来,我们一起看看 ui_mywidget.h 的实现过程:




通过这样的一步步分析,我们发现 Designer(界面设计器)设计 ui 界面最终转换为 C++ 代码(ui_类名.h),和我们写的 Qt 代码是大同小异的,也就是说代码才是王道,Designer(界面设计器)只是辅助我们快速设计界面,没有它,我们同样可以写 Qt 程序假如我们对某些部件操作不熟悉,不知道该如何用其相应函数,这时候我们通过  Designer(界面设计器)拖拽此部件,修改其所需属性,接着编译,看其自动转换的 C++ 代码如何实现,这样既可学习其相应函数的用法,所以说,Designer(界面设计器)本身就是学习 Qt 的好老师


那我们如何通过代码修改 ui 文件部件的属性呢?

在设计模式下,每个部件在“QObject”中都有一个“objectName”(对象名字)的属性:



objectName”(对象名字)的属性的值(如此例子中的值“pushButton”),此值则为“ui_类名.h”中自动创建的对象指针名:


所以,我们在 .cpp 文件某函数中,可以通过“ ui-> ”引用此成员,在 Qt Creator 中,“.(点)”键比较智能,如果操作的是普通对象,则为“.(点)”,如果是对象指向,自动变为“->”,而且提示可以引用的成员:



这里,通过代码修改 pushButton 的内容:



编译运行程序后,按钮的内容确实被修改:



本教程示例代码下载请点此链接:http://download.csdn.net/detail/tennysonsky



http://chatgpt.dhexx.cn/article/rQ4rp4Cw.shtml

相关文章

Qt 设计师 - Qt Designer 调整 控件 居中

目录 问题方案 问题 在上面这张图中,有三个垂直布局,但是垂直布局中上层的控件没办法拖到居中的位置。 方案 点击这个控件,右键 这里2是水平居中,下面的是垂直居中,操作三次,好了

使用Qt Designer和Qss设计Qt界面

开发界面其实一点都不比写后台逻辑简单,后台逻辑对需求方来说只有能用和不能用,但是界面没有一个确切的标准说好看还是不好看,所以设计出一个大家都说好的界面真的很难。 我们的业务是服务于内部用户的,其实大家对我们的评价就是…

Qt Designer和Qt Creator区别

不管是Qt新手还是开发过qt的群体来说,对Qt Designer、Qt Quick Designer、Qt Creator这几个应用程序肯定是熟悉的,但是你要是说具体的区别,干啥用的或者是它们实际上是单独的事物还是同一事物的名称,或者还是名称随时间变化了还是…

Qt Designer的简单使用

在前面两节的例子中,主界面窗口的尺寸和标签控件显示的矩形区域等,都是用 C 代码编写的。窗口和控件的尺寸都是预估的,控件如果多起来,那就不好估计每个控件合适的位置和大小了。 用 C 代码编写图形界面的问题就是不直观&#xf…

Qt Design Studio

1 介绍 1.1 概述 1.2 Qt Design Studio的详细特性 QtPhotoshop Bridge 在Photoshop中创建您的UI设计和UI组件,然后把它们导入到Qt Design Studio中。这包含一个先进的Photoshop插件,它能把您的设计翻译成QML语言,并导入到Qt Design Studio…

PyQt5利用Qt designer(QT设计师)使用tab widget和stacked widget实现多页面切换

PyQt5 Qt designer QT设计师 使用tab widget和stacked widget实现多页面切换 一、使用Qt designer(QT设计师)进行多页面切换ui设计二、实现tab widget多页面切换三、实现stacked widget多页面切换四、生成代码五、运行效果 一、使用Qt designer(QT设计师)进行多页面切换ui设计 …

Qt漂亮界面

Qt漂亮界面 功能规划:一、去掉菜单栏和工具栏二、顶部导航栏的设计appinit.h头文件appinit.cpp的文件使用方式: 三、阵列按钮的点击事件写法四、重写缩写界面、放大界面和关闭程序事件五、鼠标事件的处理Qt大量同类控件的操作正则表达式的设计Qt 手把手教…

PyQt5 Qt Designer 新手教程(一)—— 软件界面介绍

PyQt5 Qt Designer 新手教程(一)—— 软件界面介绍 教程博文 一、前言 终于学到了 PyQt5 Qt 设计师(Qt Designer)这个软件,博主感觉心情还是很激动的。因为,当初学 PyQt5 ,想要设计一个窗体时…

qt界面设计

设计界面时大概可以分三步: 构造出需要的所有控件通过布局管理器确定控件位置通过样式表优化控件样式 1.布局管理器 1. QBoxLayoutQHBoxLayout 水平布局QVBoxLayout 垂直布局1)setStretch 设置部件的拉伸系数2)setSpacing 设置部…

QTDesigner简介

1、QTDesigner简介: 手写代码工作量大、代码结构容易搞得混乱。 设计工具:直观、高效,工作量小,方便调试。界面和逻辑分离后期好维护。 介绍:(实现了视图和逻辑的分离,开发代码更容易分离&…

PyQt5:使用QT设计师设计界面

一. 界面设计 登录预览: 图1.1 设计界面 界面文件 可以在这里下载login.ui文件 资源文件 除了ui文件,有时候需要使用到资源: 图片资源 窗体图标(login.png): .qrc文件 可以在这里下载.qrc文件,文件内容如下&#xff1…

Python PyQt5 Qt Designer (Qt设计师)

PyQt5 Qt Designer (Qt设计师) 本文由 Luzhuo 编写,转发请保留该信息. 原文: https://blog.csdn.net/Rozol/article/details/87705426 PyQt5是对Qt所有类进行封装, Qt能开发的东西, PyQt都能开发. Qt是强大的GUI库之一, 用C开发, 并且跨平台. PyQt双许可证, 要么选择GPL(自由软…

Qt Designer简介

来源 http://www.python3.vip/tut/py/gui/qt_03/ 回顾 在前面的程序中,我们学习了怎么样用程序来把QT程序界面的 一个个窗口、控件创建出来 问题分析 QT程序界面的 一个个窗口、控件,就是像上面那样用相应的代码创建出来的。 但是,把你…

Unity资源打包(AssetBundle)

一、AssetBundle的定义和作用 定义: - 它是一个存在于硬盘上的文件。可以称之为压缩包。这个压缩包可以认为是一个文件夹,里面包含了多个文件。这些文件可以分为两类:serialized file 和 resource files。(序列化文件和源文件&a…

游戏开发unity资源管理系列:unity不支持长路径;DirectoryNotFoundException: Could not find a part of the path ““

说明: 使用Addressables打包出现如下报错 DirectoryNotFoundException: Could not find a part of the path "" 打断点发现资源路径与目标路径字符串非空,但是仍然提示报错。Library\com.unity.addressables下ab资源打出,但是仍然报…

Unity资源包共享

unity最全材质球的资源包 unity家具包装设计资源包 unity游戏模型资源包 unity人物模型资源包 unity枪模型资源包 … … … 其中一部分 有需要的朋友下方评论留下邮箱号,我发给你们,文件太大无法上传

Unity资源替换工具,旧模型替换新模型,替换GUID,替换meta文件,文件丢失等问题

Unity资源替换工具,旧模型替换新模型,替换GUID,替换meta文件,文件丢失等问题 使用说明如何使用 使用说明 第一次写,不是很规范,好东西分享给大家,学点编辑器扩展好处多啊! 如何使用 这个小工具确实帮到我了,替我省了不少时间 直接上代码: using UnityEngine; using System.…

unity网络资源导入

1、找到需要导入的文件,这里导入fbx格式 2、打开unity界面,在Asset目录下创建文件夹FBX,将需要导入的fbx预制体或整个文件夹拖入创建的FBX文件夹下 3、选中需要的fbx预制体并拖至场景中 4、双击定位到当前物体 5、找到需要导入的贴图文件text…

Unity 查找资源引用

当我们想要查找某个资源的引用情况时,可以使用文末的工具类 使用方法 先将我们的工具类放到项目中,放在哪里都可以。选中要查找的资源,右键选中的资源(资源类型没有限制),在弹出的选项中选择查找资源引用,如图一所示…