好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

嵌入式Linux用Qt Designer快速开发.docx

4页
  • 卖家[上传人]:新**
  • 文档编号:418038808
  • 上传时间:2023-09-22
  • 文档格式:DOCX
  • 文档大小:12.73KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 嵌入式Linux用Qt Designer快速开发时间:2005-12-01 10:34:32??来源:??作者:RAD (快速应用程序开发)是一种高效的软件开发形式,可以让用户在极短的时间里创建一个 图形化的用户界面通常情况下,在一张空白的表单上,开发人员可以通过拖拉或点击的方 式,在窗口的适当位置上添加一些输入框和按钮等窗口组件这时, RAD 工具会自动编写和 维护代码而用户所要做的只是确定当点击按钮或选择选单选项时将要发生什么事件在Linux下,一个非常流行的RAD工具就是Qt ?Designer它是嵌入式公司Troll tech的Qt 软件包的一个组成部分如果用户使用的是KDE桌面,那么Qt已经自动安装上了,Qt?Designer 也很有可能已经被安装好如果用户的系统没有安装,那么针对不同的版本,可以很方便地 找到KDE?Development?Tools,并安装之以Red?Hat?9.0为例,用户可以从主选单f系统 设置一添加/删除应用程序中选择KDE软件开发,即可完成Qt?Designer的安装(如图1所 示) ?图 1 安装 Qt Designer创建为了快速地向大家展示一下Qt Designer功能,先创建一个简单的摄氏温度和华氏温度的转 换程序。

      本文里将设计一个简单的GUI,并且添加一些简单的代码来实现温度的转换因为 是为了展示一下快速的开发过程,而不是一个严谨的软件项目的开发,所以这里不会进行任 何的错误检查,也不进行输入检验(也就是检查用户的输入是否为合法的温度形式)、缓冲溢 出检查等在日常软件开发中一定要做的步骤如果用户使用的是KDE,那么选单上应该已经有Qt Designer的图标不同的发行版,图标 的位置会有所不同如果用户的发行版没有Qt Designer图标,那么可以在命令行模式下输 入“designer”命令来启动该开发工具在Red Hat 9.0中,可以通过点击主选单一编程一 更多编程工具fQt Designer来启动(如图2)图 2 启动 Qt DesignerQt Designer 首先呈现给用户的是一个 New/Open 对话框(如图 3 所示)因为这里要创建一 个C++程序,所以在此选择C++ Project,点击“0K”继续图 3 New/Open 对话框选择一个想要保存文件的位置,并且给出一个文件名,在此使用的文件名是cfconv注意这 里文件名的扩展名一定要是.pro点击“Save”后,返回到了 Projec t Sett ings对话框(见 图 4)。

      图 4 保存文件图 5 Qt Designer 主窗口现在就已经在 Qt Designer 主窗口上了(见图 5),确保 Property Editor 可见如果它是不 可见的,用户可以通过Windows—Views—Proper ty Edi tor/Signal Handlers选单选项来使 其可见(缺省情况下是可见的)图 6 创建一个新的表单图 7 更改表单的属性通过选择File—New选单,然后选择Dialog来创建一个新的对话框这时Qt Designer会创 建一个新的空白表单(见图6),用户可以在其上放置输入框和按钮打开 Property Editor (见图 7),把 name 的值改为“cfconvMainForm”,把 caption 的值改 为“Celsius to Fahrenheit Converter”这里表单的 name 是被应用程序使用的内部名字,在用户编写代码时,有时需要使用的就是这 个名字Caption指的是要在标题栏上显示的名字从左边的工具箱中选择CommonWidgets,并且双击“TextLabel”在表单的左上角放置一个 标签,在这个标签位置下方再放置一个同样的标签。

      选中上面的标签,并且将其text值改为 “Celsius”,相应地把第二个标签的text值也改为“Fahrenheit”在这两个标签的后面加 上两个对应的输入框,用于输入需要转换的温度和输出转换后的温度从 Common Widgets 中双击选择LineEdit,然后在两个标签后创建两个LineEdit把两个 LineEdit 框的 name 值分别改为“celsiusLineEdit” 和“fahrenheitLineEdit”,再 把 fahrenheitLineEdit 文本框的 readOnly 属性改为 True从Common Widgets上选择PushButton,并且创建两个按钮,分别将其name和text属性改 为 quitPushButton 和 Quit、convertPushButton 和 Convert这时表单看起来就如图 8 所示图8基本完成的GUI现在按“Ct rl+S ”或从选单中选择File—Save,接下来要求输入文件名缺省情况下,使用 的是表单的name值,扩展名使用的是.ui用户可以接受这个名字,然后点击“Save”如果想看一看效果,用户可以按“Ctrl+T”或从选单中选择Preview—Preview Form来预览 应用程序。

      但是现在按钮还不能做任何事情,所以下一步要做的事情就是让按钮和某一特定 的动作相关联当点击“Quit”按钮时,要求应用程序会被关闭;而当点击fonvert”按钮 时,要求输入的温度由摄氏温度转换为华氏温度在“Quit”按钮上点击右键,选择Connections,然后点击“New”从Sender列表中选择 quitPushButton,从Signal 列表中选择clicked从Receiver 列表中选择cfconvMainFrom, 从Slot列表中选择close()用户可以参见图9所示图9为Quit按钮创建关联现在,当用户点击“ Qui t”按钮时,会向表单发送一个鼠标点击的信号,这将使这个表单关 闭(因为这个表单是主表单,所以它关闭时应用程序也就同时关闭了)要进行测试,可以选 择Preview—Preview Form这时点击“Quit”按钮,预览窗口就会被关闭下面为“Convert”按钮创建连接在“Convert”按钮上点击右键,然后选择Connections 这时用户会发现这是一个全局连接窗口,而不是某一窗口部件的连接点击“New”来创建一 个新的连接从Sender列表中选择convertPushbButton,从Signal列表中选择clicked(), 从Receiver列表中选择cfconvMainFrom。

      本想将该按钮与fahrenheitLineEdit窗口部件相 关联,但列表中却没有一个可以满足这项要求的栏目因此需要创建一个新的栏目来完成这 个连接图 10 创建新的栏图 11 完成连接创建点击“Edit Slots”和“New Function”(见图10),把函数名改为convert(),其它的值可 以保持不变,点击“0K”来关闭窗口要完成这个连接,从Slot列表中选择convert()(见图11)现在来完成应用程序的代码部分:创建convert()函数在Project Overview窗口点击 “cfconvmainform.ui.h”来启动Code Edi tor此时conver t()函数实际上已经存在了,只 不过是空的罢了输入下面的C++代码来完成函数:void cfconvMainForm::convert() {/* Declare some variables */double celsius_input, result = 0;/* Retrieve Celsius input */celsius_input = celsiusLineEdit->text().toDouble();/* Convert to Fahrenheit */result = (celsius_input * (9.0/5.0)) + 32.0;/* Enter result and clear Celsius input box */ fahrenheitLineEdit->setText(QString::number(result, 'f', 1)); celsiusLineEdit->clear();}现在就已经基本完成这个应用程序了。

      不过在编译和运行此应用程序之前,还要创建一个 main.cpp文件方法是选择File—New—C++Main-File(main.cpp),只需接受缺省的配置即 可main.cpp会自动在Code Edi tor中打开因为这里无需改变main.cpp中的任何东西, 所以直接将 Code Editor 窗口关闭, 并且保存 main.cpp 这时也同时关闭 cfconfMainForm.ui.h Code Editor 窗口编译到此为止,在Qt Designer中的工作已经完成了保存整个项目,下面来编译和运行这个程 序在编译程序之前,要首先生成它的Makefile文件打开一个终端,然后切换至保存有项 目的位置,使用以下命令来生成 Makefile 文件:#qmake -o Makefile cfconv.pro 现在,就可以运行make来编译程序了,根据系统的性能,这个步骤需要花费一点时间当编 译工作完成后,输入./cfconv来运行程序如果一切正常,用户应该已经看到程序了。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.