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

通过《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 的内容:

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

版权声明:本博客文章,大多是本人整理编写,或在网络中收集,转载请注明出处!!

时间: 2024-12-28 16:14:16

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

[转]Qt中ui文件的使用

用designer设计的*.ui文件可以通过uic工具转换为*.h文件(在编译时也会自动生成这样一个ui_*.h文件),有了这个.h文件就可以直接按照纯C++的方式对其中的类进行调用.ui文件的使用就是利用默认工具uic自动产生一个类,然后用该类的setui函数加载界面到相应的对象上.       .ui文件的使用有三种形式:第一种是直接使用,第二种是定义一个新类,声明一个ui子对象,利用该对象来加载界面,第三种是将ui作为基类派生新的类. 借用一个例程分析如下: 工程及界面          

Qt入门学习——Qt 5 帮助文档的使用

Qt入门学习——Qt 5 帮助文档的使用 学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必要去记,用到什么就去帮助文档查看用法. 我们使用 Qt 帮助文档,主要分为这么几步: 1)类使用的相关介绍 2)查看所用部件(类)的相应成员函数(功能,参数,返回值) 3)查看部件的信号 4)查看部件的事件(所对应的虚函数如何编写) 1)类使用的相关介绍 光标移动到类名字的地方,接着按“F1”即可跳

Qt入门学习——Qt Creator的使用

Qt Creator介绍 通过前面<Qt快速入门(vim纯代码编写)>的学习得知,只有搭建好了 Qt 环境(Qt库和开发工具),即可通过 vim 纯代码编写 Qt 程序,再借助 Qt 里的 qmake 工具编译 Qt 代码,具体流程如下: 1)编写 Qt 代码 2)通过 qmake -project 生成工程文件 3)工程文件中添加所需模块:QT += widgets 4)根据工程文件用 qmake 命令生成 Makefile 5)通过 make 编译代码生成所需可执行程序 6)通过"

qt creator 使用Ui文件的问题

一.显式地调用uic.exe 如何将UI文件生成头文件 1,将设计的UI文件拷贝到uic.exe的目录下Qt\Qt5.3.2\5.3\mingw482_32\bin. 2, 打开windows的CMD,进入到UIC的目录下:cd C:\Qt\Qt5.3.2\5.3\mingw482_32\bin 3,  执行如下命令:uic mainwindow.ui -o mainwindow.h   就会再uic的目录下生成mainwindow.h uic命令参数的意思如下: 二.qt creator 建立

QT模态对话框用法(在UI文件中设置Widget背景图,这个图是一个带阴影边框的图片——酷)

QT弹出模态对话框做法: 1.新建UI文件时,一定要选择基类是QDialog的,我的选择是:Dialog without Buttons(),如下图: 2.然后在使用的时候: MyDialog dlg(this); dlg.exec(); 如果不加this,则会在任务管理器里面产生一个新的EXE. 3.如果对话框的标题是自定义,不想使用系统的标题,这时候需要在代码中加入: setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint ); setAttr

Qt入门学习——Qt快速入门(vim纯代码编写)

写代码前,先需搭建环境,详情请看:<Qt 5.4.2 ubuntu环境搭建>. 一个简单空白窗口 打开终端,通过vim first_qt.cpp新建文件,由于Qt代码为C++代码,所以,新建文件的后缀为.cpp. 代码内容如下: #include <QApplication> #include <QWidget> int main(int argc, char *argv[]) { QApplication app(argc, argv); //初始化 QWidget

(QT)在命令行编译ui文件和程序

1.新建helloworld_2文件夹,将helloworld里的main.cpp和hellodialog.cpp两个文件复制过来. 2.打开控制台.此时不能用cmd,否则不能出最后的结果(lz在运行到mingw32-make这一步的时候就出现问题了),要在开始-QT里找到QT5.5 for desktop控制台,然后运行.虽然里面关于控制台的规则都一样,但只有后者能出正确结果. 输入E:,按回车,进入E文件夹,输入cd QT\helloworld_2,按回车,进入helloworld_2文件夹

eric6中ui文件编译失败,提示找不到puicc5

1解决办法 在setting中——preference 找到qt设置——pyQT工具文件选择更改为: 我的pyuicc5.exe文件在这个目录下 然后右击编译窗口,就成功了. 如果找不到ui文件,在窗口界面下,右击,add new form 原文地址:https://www.cnblogs.com/suncf/p/10431446.html

java入门学习:Java中的main()方法详解

本文来源:http://www.zretc.com/technologyDetail/445.html 在Java入门学习中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等. 在看Java中的main()方法之前,先看一个最简单的Java应用程序HelloWorld,我将通过这