在Linux下,一个非常流行的RAD工具就是Qt Designer。它是嵌入式公司 Trolltech的Qt软件包的一个组成部分。


Qt Designer入门教程 初学者必看是本文要介绍的内容,不说这么多,。直接进入正题。RAD (快速应用程序开发)是一种高效的软件开发形式,可以让用户在极短的时间里创建一个图形化的用户界面。通常情况下,在一张空白的表单上,开发人员可以通过 拖拉或点击的方式,在窗口的适当位置上添加一些输入框和按钮等窗口组件。这时,RAD工具会自动编写和维护代码。而用户所要做的只是确定当点击按钮或选择 选单选项时将要发生什么事件。

在Linux下,一个非常流行的RAD工具就是Qt Designer。它是嵌入式公司 Trolltech的Qt软件包的一个组成部分。如果用户使用的是KDE桌面,那么Qt已经自动安装上了,Qt Designer也很有可能已经被安装 好。如果用户的系统没有安装,那么针对不同的版本,可以很方便地找到KDE Development Tools,并安装之。以Red Hat 9.0为 例,用户可以从主选单→系统设置→添加/删除应用程序中选择KDE软件开发,即可完成Qt Designer的安装(如图1所示)。

图1 安装Qt Designer

创建

为了快速地向大家展示一下Qt Designer功能,先创建一个简单的摄氏温度和华氏温度的转换程序。本文里将设计一个简单的GUI,并且添加一些简单的代码来实现温度的转换。因为是 为了展示一下快速的开发过程,而不是一个严谨的软件项目的开发,所以这里不会进行任何的错误检查,也不进行输入检验(也就是检查用户的输入是否为合法的温 度形式)、缓冲溢出检查等在日常软件开发中一定要做的步骤。

如果用户使用的是KDE,那么选单上应该已经有Qt Designer的图标。不同的发行版,图标的位置会有所不同。如果用户的发行版没有Qt Designer图标,那么可以在命令行模式下输入“designer”命令来启动该开发工具。在Red Hat 9.0中,可以通过点击主选单→编程→更多编程工具→Qt Designer来启动(如图2)。

图2 启动Qt Designer

Qt Designer首先呈现给用户的是一个New/Open对话框(如图3所示)。因为这里要创建一个C++程序,所以在此选择C++ Project,点击“OK”继续。

图3 New/Open对话框

选择一个想要保存文件的位置,并且给出一个文件名,在此使用的文件名是cfconv。注意这里文件名的扩展名一定要是.pro。点击“Save”后,返回到了Project Settings对话框(见图4)。

图4 保存文件

图5 Qt Designer主窗口

现在就已经在Qt Designer主窗口上了(见图5),确保Property Editor可见。如果它是不可见的,用户可以通过Windows→Views→Property Editor/Signal Handlers选单选项来使其可见(缺省情况下是可见的)。

图6 创建一个新的表单

图7 更改表单的属性

通过选择File→New选单,然后选择Dialog来创建一个新的对话框。这时Qt Designer会创建一个新的空白表单(见图6),用户可以在其上放置输入框和按钮。

打开Property Editor(见图7),把name的值改为“cfconvMainForm”,把caption的值改为“Celsius to Fahrenheit Converter”。

这里表单的name是被应用程序使用的内部名字,在用户编写代码时,有时需要使用的就是这个名字。Caption指的是要在标题栏上显示的名字。

从 左边的工具箱中选择Common Widgets,并且双击“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

现在按“Ctrl+S”或从选单中选择File→Save,接下来要求输入文件名。缺省情况下,使用的是表单的name值,扩展名使用的是.ui。用户可以接受这个名字,然后点击“Save”。

如 果想看一看效果,用户可以按“Ctrl+T”或从选单中选择Preview→Preview Form来预览应用程序。但是现在按钮还不能做任何事情,所以下一步要做的事情就是让按钮和某一特定的动作相关联。当点击“Quit”按钮时,要求应用程 序会被关闭;而当点击“Convert”按钮时,要求输入的温度由摄氏温度转换为华氏温度。

在“Quit”按钮上点击右键,选择 Connections,然后点击“New”。从Sender列表中选择quitPushButton,从Signal列表中选择clicked(),从 Receiver列表中选择cfconvMainFrom,从Slot列表中选择close()。用户可以参见图9所示。

图9 为Quit按钮创建关联

现在,当用户点击“Quit”按钮时,会向表单发送一个鼠标点击的信 号,这将使这个表单关闭(因为这个表单是主表单,所以它关闭时应用程序也就同时关闭了)。要进行测试,可以选择Preview→Preview Form。这时点击“Quit”按钮,预览窗口就会被关闭。

下面为“Convert”按钮创建连接。在“Convert”按钮上点击 右键,然后选择Connections。这时用户会发现这是一个全局连接窗口,而不是某一窗口部件的连接。点击“New”来创建一个新的连接。从 Sender列表中选择convertPushbButton,从Signal列表中选择clicked(),从Receiver列表中选择 cfconvMainFrom。本想将该按钮与fahrenheitLineEdit窗口部件相关联,但列表中却没有一个可以满足这项要求的栏目。因此需 要创建一个新的栏目来完成这个连接。

图10 创建新的栏

图11 完成连接创建

点击“Edit Slots”和“New Function”(见图10),把函数名改为convert(),其它的值可以保持不变,点击“OK”来关闭窗口。要完成这个连接,从Slot列表中选择convert()(见图11)。

现 在来完成应用程序的代码部分:创建convert()函数。在Project Overview窗口点击“cfconvmainform.ui.h”来启动Code Editor。此时convert()函数实际上已经存在了,只不过是空的罢了。输入下面的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 Editor中打开。因为这里无需改变main.cpp中的任何东西,所以直接将Code Editor窗口关闭,并且保存main.cpp。这时也同时关闭cfconfMainForm.ui.h Code Editor窗口。

编译

到此为止,在Qt Designer中的工作已经完成了。保存整个项目,下面来编译和运行这个程序。在编译程序之前,要首先生成它的Makefile文件。打开一个终端,然后切换至保存有项目的位置,使用以下命令来生成Makefile文件:

#qmake -o Makefile cfconv.pro

现在,就可以运行make来编译程序了,根据系统的性能,这个步骤需要花费一点时间。当编译工作完成后,输入./cfconv来运行程序。如果一切正常,用户应该已经看到程序了。

小结:Qt Designer入门教程 初学者必看的内容介绍完了,希望本篇文章对你有所帮助!更多内容请参与编辑推荐!

Qt Designer入门教程 初学者必看相关推荐

  1. FFmpeg视频处理入门教程(新手必看)

    本文主要介绍了FFmpeg视频处理入门教程,它功能强大,用途广泛,是许多音频和视频格式的标准编码/解码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 FFmpeg 是视频处理最常用的开源软件. ...

  2. Kubernetes零基础快速入门!初学者必看!

    起源 Kubernetes 源自于 google 内部的服务编排系统 - borg,诞生于2014年.它汲取了google 十五年生产环境的经验积累,并融合了社区优秀的idea和实践经验. 名字 Ku ...

  3. 命名实体识别入门教程(必看)

    关于开发自己的命名实体识别先期思路: 虽然网上有很多相关代码,但实际如何入门材料较少,故整理下: CRF:先期可以用人民日报语料库去做,步骤如下: https://blog.csdn.net/hude ...

  4. lua菜鸟教程_初学者必看:Lua入门学习教程

    Lua入门学习教程是本文要介绍的内容,主要是来对Lua入门的一个学习,Lua是一个被设计成用于扩展C/C++编程的轻量级脚本语言.不幸的是,网上很少有关于这个语言的在线教程.我主要通过阅读其源代码来了 ...

  5. Java如何快速入门?Java初学者从入门到精通必看!

            作为刚刚接触Java的小白来说,最担心的应该就是Java怎么学,都需要掌握哪些内容?今天这篇文章希望能帮助大家快速入门Java,少走弯路! 如何快速入门Java? 一.作为刚接触Jav ...

  6. PyQt5 Qt Designer 新手教程(一)—— 软件界面介绍

    PyQt5 Qt Designer 新手教程(一)-- 软件界面介绍 教程博文 一.前言 终于学到了 PyQt5 Qt 设计师(Qt Designer)这个软件,博主感觉心情还是很激动的.因为,当初学 ...

  7. 自学python买什么教材-从入门到进阶必看,51本Python精品书籍免费送!

    原标题:从入门到进阶必看,51本Python精品书籍免费送! 源 /网络 Python是一种多功能语言.它经常用作Web应用程序的脚本语言,嵌入到软件产品中,以及人工智能和系统任务管理.它既简单又强大 ...

  8. 热烈推荐: A*算法 (启发式搜索的入门篇,必看)转载

    热烈推荐: A*算法 (启发式搜索的入门篇,必看)转载 (2005-10-8 21:56)在搜索式算法中,A*算法算是个分水岭.因为它引入了启发式估价函数,从"瞎搜"转化到了&qu ...

  9. style 字体加粗_第9篇 Qt Quick入门教程之基础(九)文本显示和字体

    导语 文本显示是界面开发必不可少的内容,在Qt Quick模块中提供了 Text 项目来进行文本的显示,其中可以使用 font 属性组对文本字体进行设置.这一篇我们来看看它们的具体使用. 使用字体 就 ...

最新文章

  1. 字符串操作:索引位置、去空格、替换字符串
  2. python做逻辑回归r2_利用python实现逻辑回归
  3. ferror,perror,cleaner
  4. Python使用hashlib模块生成给定文本数据的签名摘要信息(包括各种哈希函数)
  5. 金山毒霸2012秒杀全新病毒
  6. 程序员做自媒体,龙叔教你怎么快速成为优秀博主【CSDN篇】
  7. 职高计算机专业个人鉴定范文大全,职高个人自我鉴定300字左右
  8. 华为od机考真题-平安果
  9. 基于单片机的学生视力保护仪
  10. 漫画:什么是架构师?
  11. java爬虫模拟post请求_java爬虫之使用HttpClient模拟浏览器发送请求方法详解
  12. 假期出游带上华为Mate X3 ,创新体验让旅途欢乐不间断~
  13. mac zoc ssh工具
  14. python亲和性分析_数据挖掘入门系列教程(一)之亲和性分析
  15. 【学习笔记】《基于φ-OTDR的分布式扰动传感系统定位算法研究-北交-通信与信息系统-吴》重点笔记
  16. 什么是HTTPDNS?HTTPDNS有哪些作用?
  17. Linux设置代理服务器
  18. WordPress让插件随主题一同启用
  19. Broadcast广播消息
  20. matlab实现从s域变成z域、matlab实现长除法逆z变换实例

热门文章

  1. 第三届互联网CIO-CTO班招募,CSDN 5个推荐名额,火热报名中
  2. 怎样下载网页flash
  3. 这种文件别打开,大小不足1KB,却可以让你电脑瘫痪
  4. Dplayer Blob对视频播放地址加密
  5. html制作字符批量替换工具,字符批量替换工具
  6. 2019年美赛建模D题后续(2)
  7. 统信UOS操作系统 VS 银河麒麟操作系统
  8. [原创]软件开发过程中的QA与QC
  9. vue+node(express)+socket实现简单聊天
  10. Android实战 - 音心播放器 (通知实现音乐的播放/暂停/下一曲控制)