QT UI 基础(二)编译原理及文件结构

uic读取由QtDesigner生成的XML格式的用户界面定义文件(.ui文件),然后生成其对应的C++头文件。

若界面文件为ZZZ.ui,则对应生成的头文件为ui_ZZZ.h。默认情况下:

①基于QMainWindow的程序,会生成一个叫ui_mainwindow.h的头文件

②基于QDialog的程序,会生成一个叫ui_dialog.h的头文件

③基于QWidget的程序,会生成一个叫ui_widget.h的头文件

由Qt Creator自动完成的工作有如下:

(1)在生成的头文件中,首先会定义一个叫Ui_XXX的类,其中XXX是主窗口的objectName。

比如我将主窗口的objectName设为masikkk,则头文件中会定义类Ui_masikkk

此类中有所有控件的声明,以及setupUi(QMainWindow */QDialog */QWidget *)函数的定义。

在setupUi()函数中,会定义控件的所有属性和行为。

最后,会定义一个名为Ui的命名空间,里面声明一个类masikkk,此类继承自Ui_masikkk :

namespace Ui {

class masikkk : public Ui_masikkk{};

}

(2)在主窗口的头文件中,会声明命名空间Ui :

namespaceUi{

classmasikkk;

}

并且在类的定义中声明一个私有的Ui::masikkk类的指针 * ui:

Ui::masikkk * ui;

在构造函数实现时,会在参数列表中新生成一个Ui::masikkk类的对象赋给指针ui:

ui(new Ui::masikkk)

并在函数体内调用setupUi()函数,用主窗口的指针(this指针)作参数:

ui -> setupUi(this);

这样就实现了为程序加载界面。

注意:如果你在Qt Designer中更改了主窗口的objectName,则ui文件生成的头文件中也会相应自动修改,

但在主窗口的头文件和实现文件中,不会自动将类名修改为新的objectName,需要手动修改的地方有三个,

在上文中我已分别用下划线标出了,只需将这三个地方修改为主窗口的新的objectName就行了

时间: 2024-08-29 03:40:04

QT UI 基础(二)编译原理及文件结构的相关文章

QT ui基础(一) QT dialog 及UI 关系

2016-09-17 19:41:20|  分类: QT QT ui基础(一)  QT dialog 及UI 关系 #ifndef MYWIDGET_H#define MYWIDGET_H #include <QWidget>//#include "mydialog.h"namespace Ui {    class MyWidget;}class MyDialog;class MyWidget : public QWidget{    Q_OBJECT public:  

软考基础知识—编译原理

编译原理和组成原理这一块,是我们比较头疼的.这一块接触的比较少,所以再理解起来的时候,就比较困难.但是所有的知识都是相联系的,万变不离其宗. 例如,学习组成原理的时候,我们联系我们以前的拆装机 ,学习编译原理的时候,我们联系我们学的java和.Net等编程语言等. 由于,计算机的硬件只能识别0和1,组成的机器指令程序,所以计算机编程语言由低级语言(机器语言.汇编语言)发展到了我们现在用的高级语言(java..net.VB.C++等) . 为什么我们说这一块的学习,要联系我们的java呢? Jav

软考-程序设计语言基础(编译原理)

首先声明一下,本系列软考的文章是针对软件设计师(中级)的. 在软件设计师考试中,关于程序设计语言这一章节,前面的知识很基础,像一些控制结构和数据类型的知识我想大家都非常熟练就没有总结在图里. 本章节的重点内容在于编译原理,编译原理指的是编译器是将汇编或高级计算机语言翻译为二进制机器语言代码的计算机程序.内容主要包括文法.正规式.有限自动机.语法推导树. 好了,不多说,还是老规矩用图来介绍. 重点看一下编译原理,展开前三项看看. 文法,是描述语法结构的形式规则: 正规式是描述程序语言单词的表达式,

UI基础二

1.修改了系统自带头文件后,Xcode会报错解决方案:删掉下面文件夹的缓存即可(aplle是电脑的用户名)/Users/aplle/资源库/Developer/Xcode/DerivedData或者/Users/aplle/Library/Developer/Xcode/DerivedData 2.使用xib封装一个自定义view的步骤1> 新建一个继承UIView的自定义view,假设类名叫做(AppView)2> 新建一个AppView.xib文件来描述AppView内部的结构3>

wex5 教程 前端UI编译原理与记事本编辑

一 前言 wex5页面,与html页面有何差异?两者之前的关系是什么?是如何完成转译的? 能否像编辑html那样用记事本来修改w页面? wex5前端UI在云部署后能否在云端进行二次编辑,而不需要在wex5编辑器里修改后再次上传?? 带着这些问题,重新认识wex5的UI设计与编译原理,有助于我们分离前端开发. 二 页面结构分析: wex5页面由w.js,css三个页面构成,具体功能与对应关系如下: 三 编译后页面结构 1 在公有云部署时,要将wex5页面进行编译,得到部署需要的Native下的ww

Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编译,所以借此篇内容说明一下原由并为之后文章的学习做准备. 即使本片内容只是在围绕一个小小的HelloWorld程序开展,但还是希望朋友们不要急于求成,"欲速则不达". 文章整体思路: 我们循序渐进地来看,一个Qt应用的完成有以下一个重要的步骤: 项目创建->源码编译->程序运行

Qt学习总结-ui篇(二)

qccs定义圆角 border-radius:10px; 如果想给特定位置定义圆角,如: 左上角:border-left-top-radius:10px; 右下角色:border-right-bottom-rasius:10px; 半透明效果 只需要在css中使用rgba(100,100,100,40)这种形式来表示颜色即可. 为可执行文件添加图标 1.新建文件:finename.rc 文件名无所谓,只要后缀为rc就可以. 2.编辑新建的文件,输入以下内容: IDI_ICON1 ICON DIS

图像处理之基础---二维卷积运算原理剖析

卷积运算(Convolution)是通过两个函数f 和g 生成第三个函数的一种数学算子,表示函数f 与经过翻转和平移与g 的重叠部分的累积.如果将参加卷积的一个函数看作区间的指示函数,卷积还可以被看作是“滑动平均”的推广.假设: f(x),g(x)是R1上的两个可积函数,并且积分是存在的.这样,随着 x 的不同取值,这个积分就定义了一个新函数h(x),称为函数f 与g 的卷积,记为h(x)=(f*g)(x). 两个向量卷积,说白了就是多项式乘法.下面用个矩阵例子说明其工作原理: a和d的卷积就是

编译原理(二)

一.简单表达式的翻译器 通过上一篇知道,预测语法分析不能处理左递归的文法(比如对stmt分析,则遇到多个以stmt开头的产生式,这使得向前看符号无法匹配一个分支,而右递归则是可以使用预测分析法处理). 1. 抽象语法和具体语法 抽象语法:每个内部结点代表一个运算符,该结点的子结点表示这个运算符的分量.比如表达式 9 -5 + 2,其抽象语法树为 将前面介绍的使用终结符和非终结符表示的语法分析树称为具体语法树,相应的文法为具体语法.这里介绍的为抽象语法树. 考虑前文介绍的一个文法: expr ->