designer生成的 调用qt_在Qt中如何使用QtDesigner创建的UI文件(一) (转)

本文介绍了如何在Qt应用中直接使用QtDesigner生成的UI文件,包括直接包含ui文件生成的C++代码,使用成员变量或指针成员变量的方式,以及多继承方式来集成UI。详细讲解了各个方法的实现步骤和注意事项,帮助开发者更好地理解和使用QtDesigner。
摘要由CSDN通过智能技术生成

使用Qt有一些时间了,一直在IDE环境(qtcreator和VS2003+集成器)中使用,自然少了很多麻烦的步骤。但是在享受这种便利的同时,我们也失去了理解更多知识背后的点滴。在IDE中,如果我们要开发一个对话框,通常是使用 “新建—>Qt—>Qt设计师界面类” 这样IDE会自动的帮我们生成三个文件(filename.ui, filename.h,filename.cpp)。qmake也非常智能,可以自动检测到这个用户界面文件(filename.ui)并且生产适当的makefile规则。这样在编译之前,IDE会自动调用uic(Qt自带的用户界面编译器,User Interface Compiler)将界面文件(filename.ui)转换成C++代码并保存在ui_filename.h文件中。并且在另外两个C++源文件(filename.h和filename.cpp)中使用了组合(即委托或代理)的方式使用了ui_filename.h里的类(该类通常定义在命名空间Ui下)。

如果你不主动的留心这些细节,你可能永远都不明白这些,即使使用了多年的Qt,我就是这样。一次,项目组的需求人员嫌弃我们开发人员做的界面布局不够恰当,美观。于是有了自己来开发界面的想法。很好!开发人员很快手把手的教会了需求人员用Qt Designer设计窗体界面,然而,等到需求人员把 pureui_filename.ui文件扔给我们开发人员使用时,我们顿时傻了眼,怎么用?于是使用了一个最愚蠢当然也是最简单的办法: 还是和之前一样,通过IDE“新建—>Qt—>Qt设计师界面类”生成与“pureui_filename.”同名的文件,然后用需求人员给的pureui_filename.ui替换IDE自动生成的  *.ui 文件。虽然转了一个小弯,但目的达到!

后来想想,总觉得多少有些遗憾,于是查阅了Qt文档之Using a Designer UI File in Your Application

在这个文档中,详细说明了在应用程序中使用UI文件的方法。

即把filename.ui经过uic转换后的C++代码文件ui_filename.h直接包含,使用其里面Ui命名空间下的类(名称和主窗体的objectname相同,这里假设为GoToCellDialog)。

#include "ui_gotocelldialog.h"    // uic工具将gotocelldialog.ui生成的C++代码

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

QDialog *dialog= new QDialog;  // 用于显示界面的父窗体QDialog(QWidget的子类)

Ui::GotoCellDialog ui;  // 界面类,必须显示在一个QWidget(或其子类)上

ui.setupUi(dialog); // 将QDialog设置为 GotoCellDialog 的父窗体,这样GotoCellDialog 里面定义的控件就会显示在QDialog窗体内

dialog->show();

return app.exec();

}

#include "ui_gotocelldialog.h" // uic工具将gotocelldialog.ui生成的C++代码

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

QDialog *dialog= new QDialog; // 用于显示界面的父窗体QDialog(QWidget的子类)

Ui::GotoCellDia

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值