快速开发交叉编译之Qt Designer
创始人
2024-07-31 14:10:53
0

Qt Designer为程序员提供了可视化的设计能力,可用于开发应用程序中的所有或者部分窗体。交叉编译呢,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。

本文在移植好了Qt交叉编译环境和移植环境的基础上,对qt Designer与手工代码整合的方式做以下说明。(并不涉及qt Designer的操作)

在终端中输入:Designer。就会出现qt设计师的界面。我们默认创建一个。并稍微加上一些控件,最终效果如图。

快速开发交叉编译之Qt Designer

我们将其保存为hello.ui.比如保存到/home目录下,那么我们在/home目录创建一个main.cpp文件,代码如下:

  1. #include  
  2. #include  
  3. #include "ui_hello.h"      #注意这里一定要和ui文件的名称对应,会自动生成ui_hello.h文件  
  4. int main(int argc ,char *argv[])  
  5. {  
  6.     QApplication app(argc,argv);  
  7.     Ui::GoToCellDialog ui;  
  8.     QDialog *dialog = new QDialog;  
  9.     ui.setupUi(dialog);  
  10.     dialog->show();  
  11.     return app.exec();  
  12. }  

完成之后,我们在终端中进入/home目录,执行:

  1. qte-x86-make -project 

会发现在当前目录生成了一个qt.pro文件。

继续执行

  1. qte-x86-make  qt.pro 

会发现在当前目录生成了Makfile,继续执行make即可生成可执行文件hello。最终生成如图这些文件。

快速开发交叉编译之Qt Designer

在终端中执行:qvfb & 继续执行:./qt -qws。效果如下:

快速开发交叉编译之Qt Designer

那么我们使用qte-arm-make,照着上面的步骤生成的可执行文件也可以在mini2440的linux环境中执行,效果和上图一样。

原理:实际上,qmake工具会自动检测用户界面文件hello.ui,并且可以生成适当的makefile规则来调用Qt的用户界面编译器UIC。UIC工具会将hello.ui文件转换成C++并且将转换结果存储在ui_hello.h文件中。ui_hello.h包好了图形资源的一些定义。

以上内容讲述的是如何使用Qt Designer快速开发交叉编译环境下以及mini2440的QT程序的界面窗体,不过实现对效果还是蛮好的,希望能帮助你解决问题。

【编辑推荐】

浅析Qt Quick Designer

在Qt中如何写控制台程序

利用Qt Designer开发Qt界面

Qt 平台中使GUI保持响应流畅

利用Qt Designer开发嵌入式linux

PowerDesigner15.1 逆向工程图解

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...