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{

class masikkk;

}

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

Ui::masikkk * ui;

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

ui(new Ui::masikkk)

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

ui -> setupUi(this);

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

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

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

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

Qt中用户界面的User Interface Compiler(uic)机制的相关说明相关推荐

  1. window10 运行linux软件,现在你可以直接在Windows 10平台上运行带用户界面的Linux桌面软件...

    微软目前正在继续更新 Windows 10 WSL 子系统功能 , 此次更新主要带来GPU硬件加速可让用户运行桌面软件. 以往我们要想运行Linux软件肯定得使用Linux操作系统,在 WSL 发布后 ...

  2. 【Qt专栏】Qt 中信号与槽的概念和实现机制

    目录 一,信号和槽概念 1.元对象系统 2.信号和槽 3.底层实现机制 二,什么是观察者设计模式 三,观察者设计模式的编程套路 四,纯 C++ 实现信号与槽机制 1.槽函数模板类 2.信号模板类 3. ...

  3. Winform开发中常见界面的DevExpress处理操作

    我们在开发Winform程序的时候,需要经常性的对界面的一些控件进行初始化,或者经常简单的封装,以方便我们在界面设计过程中反复使用.本文主要介绍在我的一些项目中经常性的界面处理操作和代码,以便为大家开 ...

  4. 移动用户界面的5个设计原则

    以下内容由Mockplus(摹客)团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 去年移动端用户首次在全球范围内超过桌面端用户.看看来自全球的统计数据,如今超过22%屏幕的分 ...

  5. linux3.0操作系统下载,GNOME下载3.0 正式版_新一代桌面用户界面的Linux操作系统下载...

    [基本简介] GNOME3.0适用于各类设备,采用了新一代桌面用户界面GNOME Shell,改进了GNOME开发平台,包括显示后端.新的API.搜索功能.用户消息.系统设置等诸多方面. [特色功能] ...

  6. C++将带ui界面的qt工程封装为动态库dll

    C++将带ui界面的qt工程封装为动态库dll 功能如下 完整源代码实现如下 功能如下 将工程封装后可以在别的工程下直接引用该界面,以及该界面的函数, 完整源代码实现如下 #ifndef BUILD_ ...

  7. MAC地址中的“O”和“0”怎么区别?命令行黑窗口界面的“O”和“0”怎么区别?

    在Windows系统下查电脑mac地址的时候,通过cmd进入命令行黑窗口界面,敲"ipconfig /all"可以很方便查到. 有时候需要抄在本子上或者Excel等其他地方,很多人 ...

  8. Java的Swing在界面的JPanel面板中中添加图片

    Swing在界面的JPanel面板中中添加图片 需求分析 在JPanel中添加图片; 将绘有图片的JPanel组件添加到JFrame界面中,实现切割组件放置效果. 方法一:使用Toolkit.getD ...

  9. 在Qt中如何使用QtDesigner创建的UI文件(一) (转)

    使用Qt有一些时间了,一直在IDE环境(qtcreator和VS2003+集成器)中使用,自然少了很多麻烦的步骤.但是在享受这种便利的同时,我们也失去了理解更多知识背后的点滴.在IDE中,如果我们要开 ...

最新文章

  1. FileUpload路径
  2. vuecli3修改html,vue-cli3多页应用改造
  3. Amazon Elastic Map Reduce使用Apache Mahout计算建议
  4. PAT乙级 1021 个位数统计
  5. 【循序渐进学Python】9.异常处理
  6. 大数据实时分析平台应用在哪些场景
  7. DNN/LSTM/Text-CNN情感分类实战与分析
  8. linux环境下的c++编程
  9. CSS3 实现图片上浮动画
  10. 软件测试三五七原则,运动前必看!“三五七”原则和注意事项
  11. JAVA 二维码图片生成和base64位加密解密
  12. ubuntu安装搜狗输入法,并解决输入框一直显示在左下角的问题
  13. 计算机系的对联,轻松写对联 微软亚洲研究院推出电脑对联
  14. 大学生破译周鸿祎手机号 李开复放“橄榄枝”
  15. adb 备份和还原apk应用数据
  16. 连AI都在看《英雄联盟》游戏直播
  17. linux强制关闭程序快捷键,Linux 使用、ctrl+z或screen后台运行命令程序的方法
  18. android so strip,用于CMake构建工具链中“strip”命令的Android NDK路径变量
  19. 连涨了三天的股票,该买还是该卖?
  20. [刷题]leetcode\167_两数之和Ⅱ

热门文章

  1. [引擎搭建记录] 时间性抗锯齿(TAA)
  2. 考研380分什么水平计算机,考研380分属于什么水平 算高分吗
  3. AIX上解压缩.tar.Z, .tar.gz, .zip
  4. app_process 自定义类似am pm命令
  5. MATLAB特殊矩阵的构造
  6. 基于Unity3D的相机功能的实现(六)—— 上帝视角(王者荣耀视角)
  7. [Unity-26] AnimationClip压缩-动画文件压缩
  8. 使用webp进行图像压缩
  9. 信捷PLC以太网通讯数据采集解决方案
  10. 使用计算机制作数字文本格式,电脑excel表格如何将文本格式变成数字格式