第二章,使用Qt快速开发应用程序

虽然Qt一开始只是一个用于开发具有图形用户界面的跨平台应用程序的工具,但该工具包已经扩展为一个有用的工具,用于构建所有类型的软件命令行应用程序、嵌入式软件和用于重型工作站应用程序的图形用户界面。

Qt的历史根源使得创建图形用户界面和围绕它构建应用程序变得非常容易。本章通过几个简单的步骤从最初的想法一直到一个可工作的应用程序。

1 The Sketch

在开发软件时,最好有一个草图来显示您想要实现的目标。本章的目标是实现一个简单的电话簿,它包含联系人和电话号码的列表。

图形用户界面(从这里开始的UI)将围绕两个对话框构建:一个用于显示列表和可用操作,另一个用于编辑联系人。图2-1显示了这两个对话框的早期草稿。

第二章,使用Qt快速开发应用程序

图2-1

该过程的下一步是将草图中的想法转化为可以实现的结构。为此,您必须了解Qt应用程序是如何工作的。

2 Event-Driver Applications 事件驱动的应用

所有Qt应用程序都是事件驱动的,因此不能直接从main函数执行到应用程序的所有部分。相反,您从main函数初始化应用程序,然后main函数调用QApplication对象上的exec方法。这将启动应用程序的事件循环。事件可以是网络上接收到的新包,可以是一个定时器事件,也可以是用户按了一个键或移动了鼠标的事件。

QApplication对象等待这些事件,并将它们传递给任何受影响的QObject。例如,当用户在图2-1所示的电话簿对话框中单击Clear All按钮时,该单击事件会加入到应用程序的事件循环。然后QApplication对象获取单击的事件,并将其传递给受影响的对象:在本例中,表示按钮的QPushButton对象。然后,该按钮对象对事件作出反应并发出相关信号。

通过将被单击的按钮和选中的项目连接到实现应用程序实际功能的插槽,用户界面被设置为对用户交互作出反应。因此,在开发应用程序时,一个好的出发点是识别用户可以通过图2-1所示的UI执行的操作。

-第一个操作是启动应用程序。当这种情况发生时,将显示列表对话框;

-用户添加一个新项目。这显示了一个空的编辑对话框;

-用户编辑当前选择的项目。这显示了一个填充的编辑对话框;

-用户删除当前选择的项目;

-用户清除列表;

-用户退出应用程序;

-在编辑对话框中,用户批准所做的更改。这意味着更改将反映在列表对话框中;

-在编辑对话框中,用户取消所做的更改。

从上述列表的第一条开始,主机操作系统必须负责启动应用程序。在这个过程中,您的部分是从主函数中显示列表对话框。其余的动作在组成UI的两个对话框上显示为按钮。

总结一下:该应用程序由一个主函数、一个列表对话框和一个编辑对话框组成。每个对话框由一个表单(即UI的XML描述)和一个组成Qt感兴趣的实际QDialog的类组成。这些信息足以创建一个项目文件。结果如清单2-1所示。注意,它从应用程序模板应用程序开始,这是所有Qt应用程序的起点。项目文件的其余部分只是需要创建的文件列表,这是您在本章的其余部分将要做的事情。

第二章,使用Qt快速开发应用程序

现在为应用程序创建一个新目录,并将项目文件放在其中。当您将本章中显示的其余文件放入该目录时,您就得到了一个完整的应用程序。

3 Using Designer

双击打开QtCreator后,在使用时,会出现无响应或者闪退的情况,一种有效的解决办法是以管理员身份运行。网上介绍的其他的方法我试了几个,目前这种方法是最有效的。通过下图的操作即可,也可以通过右键桌面上QtCreator的快捷方式选择“以管理身份运行”。具体原因不解释,大家可以网上搜索。

第二章,使用Qt快速开发应用程序

设计器是用于设计Qt附带的用户界面的工具。接下来我们按照图2-1所示的草图进行控件布局:

3-1 创建工程

1)QtCreator打开后如下图所示:

第二章,使用Qt快速开发应用程序

2)文件->新建文件或项目->Application->Qt Widget Application->choose:

第二章,使用Qt快速开发应用程序

3)填写项目名称,工程路径,点击下一步

第二章,使用Qt快速开发应用程序

4)构建系统选择qmake,点击下一步

第二章,使用Qt快速开发应用程序

5)填写class name,Base Class 选择QDialog(QMainWindow,QWidget,QDialog的区别后边的章节中会讲到),点击下一步:

第二章,使用Qt快速开发应用程序

6)选择MinGW 32-bit,点击下一步

第二章,使用Qt快速开发应用程序

7)点击完成,暂时不需要版本控制:

第二章,使用Qt快速开发应用程序

8)点击 项目->浏览,选择3)中工程目录下的addressbook文件夹:

第二章,使用Qt快速开发应用程序

至此,工程就创建好了,但是还少一个对话框–EditDialog。

3-2 添加界面

在工程中添加一个对话框的过程如下:

1)右键单击项目名称->Add New…

第二章,使用Qt快速开发应用程序

2)弹出如下界面,一次选择Qt->Qt设计师界面->choose

第二章,使用Qt快速开发应用程序

3)弹出如下界面,选择Dialog with Buttons Bottom,下一步

第二章,使用Qt快速开发应用程序

4)弹出如下界面,填写类名,下一步,默认完成即可。

第二章,使用Qt快速开发应用程序

在工程中加入EditDialog后的工程树:

第二章,使用Qt快速开发应用程序

ListDialog和EditDialog的布局下节详细介绍。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月28日 上午11:06
下一篇 2023年4月29日 上午9:06

相关推荐

  • 嘟嘟车心安卓车载导航开箱体验(嘟嘟车机下载)

    嘟嘟车心安卓车载导航开箱体验 今年5月份买了人生的第一辆车,钱不太多,所以选择也很简单——大众朗逸1.6手动低配版。说清楚了就是挂着大众牌子的最低档朗逸车子(没有天窗、没有导航、没…

    科研百科 2024年7月25日
    51
  • 中小企业协同办公

    中小企业协同办公的重要性 中小企业是现代社会的重要组成部分,它们提供了许多就业机会和商业机会。然而,中小企业通常面临着许多挑战,如人员流动、业务规模较小、缺乏资金等。在这种情况下,…

    科研百科 2025年1月3日
    4
  • 科研项目可以一个人完成吗

    科研项目可以一个人完成吗? 近年来,随着人工智能和机器学习技术的发展,越来越多的人开始参与科研项目。然而,对于某些科研项目来说,一个人可能并不足以完成。这些项目通常需要高度的创造性…

    科研百科 2024年8月12日
    29
  • 花钱科研项目有用吗推荐信花钱科研项目有用吗推荐信

    花钱科研项目有用吗?推荐信推荐信花钱科研项目有用吗?这些问题一直是许多人关注的话题。花钱科研项目是否值得投资?是否有用?本文将为您一一解答。 首先,我们需要了解花钱科研项目的定义。…

    科研百科 2024年6月13日
    44
  • researchgate

    ResearchGate: 一个让学术研究变得更容易的平台 ResearchGate 是一个在线平台,旨在促进学术研究和交流。它由一群志愿者创建,旨在帮助研究人员找到他们所需要的资…

    科研百科 2024年9月30日
    14
  • 财政科研项目绩效分配

    财政科研项目绩效分配 财政科研项目绩效分配是影响科研项目发展的重要因素之一。合理的绩效分配可以提高科研项目的效率和成果,同时也有助于提高财政资源的利用效率。本文将探讨财政科研项目绩…

    科研百科 4天前
    1
  • 用章制度内部控制

    用章制度内部控制 随着企业竞争的加剧和规模的不断扩大,企业内部控制的重要性也越来越凸显。内部控制是指企业为保护资产安全、降低风险、提高运营效率而制定的一系列制度和措施。其中,用章制…

    科研百科 2024年10月25日
    0
  • 申请和老师做科研项目的理由

    申请和老师做科研项目的理由 作为一名年轻的研究者,我一直梦想着能够和老师一起进行科研项目。作为一名学生,我有幸得到了一位优秀的老师指导和帮助,我深知自己需要更加努力学习和成长,以便…

    科研百科 2024年10月11日
    6
  • 项目系统管理师 中级

    项目系统管理师中级认证:提升管理技能,实现职业目标 随着信息技术的快速发展,项目管理已经成为了企业成功的关键因素之一。作为一名项目系统管理师,需要具备扎实的项目管理知识和技能,才能…

    科研百科 2025年1月29日
    0
  • 西安市科技局关于转发《陕西省科技厅关于征集2019年度陕西省科技计划项目的通知》的通知

    各有关单位: 根据《陕西省科技厅关于征集2019年度陕西省科技计划项目的通知》(陕科发〔2018〕13号),为了做好我市的申报推荐工作,各区县开发区做好项目组织工作,现将通知予以转…

    科研百科 2023年9月5日
    66