• 如何使用C++图形界面开发框架Qt创建一个应用程序?(Part 2)


    Qt是目前最先进、最完整的跨平台C++开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。

    点击获取Qt组件下载

    在上文中(点击这里回顾>>),我们为大家介绍了用于构建项目的构建系统、如何使用项目向导等,本文将继续介绍如何选择要创建项目的类型。

    选择项目类型

    类别向导模板目的
    应用程序(Qt for MCU)MCU Support Application创建一个应用程序,该应用程序使用Qt QML和Qt Quick Controls类型的子集(由Qt for MCU支持),您可以在MCU板上部署、运行和调试。
    应用程序(Qt)Qt Widgets Application使用Qt Designer表单为桌面设计一个基于Qt小部件的用户界面,并使用c++实现应用程序逻辑。
    Qt Console Application使用一个main.cpp文件。
    Qt Quick Application创建一个Qt Quick 2应用程序项目,该项目可以包含QML和c++代码。您可以构建应用程序并将其部署到桌面、嵌入式和移动目标平台。
    应用程序(Qt for Python)Empty Application创建一个Qt for Python应用程序,其中只包含QApplication的主代码。
    Empty Window创建一个Qt for Python应用程序,其中包含一个空窗口。
    Window UI创建一个Qt for Python应用程序,其中包含一个空窗口和一个基于小部件的UI。首选方法,需要您从.ui文件生成一个Python文件,以便将其直接导入到应用程序中。
    Window UI - Dynamic load创建一个Qt for Python应用程序,其中包含一个空窗口和一个基于小部件的UI。
    Qt Quick 应用程序 - Empty创建一个包含空Qt Quick Application的Python项目。

    C++库

    一个基于qmake的共享或静态c++库。
    Qt Quick 2扩展插件创建一个c++插件,通过使用QQmlEngine类,可以提供可以动态加载到Qt Quick 2应用程序中的扩展。
    Qt Creator插件创建一个Qt Creator插件。
    其他项目

    Qt Custom Designer Widget

    创建自定义Qt Designer小部件或小部件集合。
    Qt Quick UI Prototype

    使用包含主视图的单个QML文件创建Qt Quick UI项目,您可以在QML场景预览工具中预览Qt Quick 2 UI项目。不需要构建它们,因为它们不包含任何c++代码。

    只有在进行原型设计时才使用此模板,不能使用此模板创建完整应用。

    Qt Quick UI项目不能部署到嵌入式或移动目标平台。对于这些平台,应该创建Qt Quick应用程序。

    Auto Test Project为Qt或谷歌测试创建带有样板代码的项目。
    Subdirs Project创建子项目,该子项目使您能够将qmake项目构造为树形层次结构。
    Empty qmake Project创建一个基于qmake但不使用任何默认类的空qmake项目。
    Code Snippet从代码片段创建qmake项目。在修复包含代码段的错误报告时,可以将代码段放入项目中进行编译和检查。
    Non-Qt Project

    Plain C Application

    创建一个使用qmake、Qbs或CMake但不使用Qt库的普通C应用程序。
    Plain C++ Application创建一个使用qmake、Qbs或CMake但不使用Qt库的普通c++应用程序。
    Nim Application (experimental)创建一个使用Nimble但不使用Qt库的Nim应用程序。
    Nimble Application (experimental)创建一个使用Nimble但不使用Qt库的Nimble应用程序。
    导入项目项目从版本控制从受支持的版本控制系统(如Bazaar、CVS、Git、Mercurial或Subversion)导入项目。
    导入为qmake或CMake项目(功能有限)导入不使用任何支持的构建系统(qmake、Qbs、CMake或Autotools)的现有项目。该模板创建一个项目文件,它使您能够使用Qt Creator作为代码编辑器和调试和分析工具的启动器。但是如果您想要构建项目,可能需要编辑生成的项目文件。
    导入现有的项目导入不使用任何支持的构建系统(qmake、Qbs、CMake或Autotools)的现有项目,这使您能够使用Qt Creator作为代码编辑器。

    要创建一个新项目,选择File > New Project并选择项目的类型,向导对话框的内容取决于项目类型和您在Kit Selection对话框中选择的套件,按照向导的说明操作。

    创建一个基于Qt Widget的Python应用程序

    Qt for Python使您能够在Python应用程序中使用Qt 6 API,可以使用PySide6模块来访问单独的Qt模块,例如Qt Core、Qt GUI和Qt Widgets。

    如果您还没有安装PySide6,Qt Creator会在项目创建后提示您安装它。此外,它还提示您安装提供代码完成和注释等服务的Python语言服务器,选择Install来安装PySide6和语言服务器。

    若要查看和管理可用的Python解释器,请选择“Edit > Preferences > Python > interpreters”。

    您可以添加和删除解释器,并清理对已卸载但仍显示在列表中的解释器的引用,此外还可以将解释器设置为默认使用。

    Qt for Python Application向导生成一个.pyproject文件,其中列出了Python项目中的文件,以及一个.py文件,其中包含一些示例代码。此外,基于小部件的UI向导会创建一个包含Qt Designer表单的.ui文件,Qt Quick Application向导会创建一个包含Qt Quick控件的.qml文件。

    .pyproject文件是基于json的配置文件,它取代了以前使用的.pyqtc配置文件。您仍然可以打开并使用.pyqtc文件,但我们建议您为新项目选择.pyproject文件。

    Window UI向导使您能够创建包含类源文件的Python项目。指定PySide版本、类名、基类和类的源文件。

    向导将导入文件添加到源文件中,以提供对QApplication、在Qt Widgets模块中选择的基类和Qt UI工具的访问:

    1. import sys
    2. from PySide6.QtWidgets import QApplication, QWidget

    注意:首先要从UI表单创建Python代码,这一点很重要。在PySide6中,可以通过在终端执行pyside6-uic form.ui -o ui_form.py来实现这一点,这使您能够从该Python文件导入表示UI的类。

    一旦从UI文件生成Python代码,就可以导入这个类:

    from ui_form import Ui_Widget

    该向导还添加一个具有指定名称的主类,从指定的基类继承:

    1. class Widget(QWidget):
    2. def __init__(self, parent=None):
    3. super().__init__(parent)

    主类中的以下行从UI文件实例化生成的Python类,并为当前类设置接口。

    1. self.ui = Ui_Widget()
    2. self.ui.setupUi(self)

    注意:新类的UI元素可以作为成员变量访问。例如,如果您有一个名为button1的按钮,可以使用self.ui.button1与它交互。

    接下来,向导添加一个主函数,在其中创建一个QApplication 实例。因为Qt可以从命令行接收参数,所以您可以将任何参数传递给QApplication对象。通常,您不需要传递任何参数,可以使用以下方法:

    1. if __name__ == "__main__":
    2. app = QApplication(sys.argv)

    接下来,向导实例化MainWindow类并显示它:

    1. widget = Widget()
    2. widget.show()
    3. ...

    最后,向导调用app.exec()方法进入Qt主循环并开始执行Qt代码:

    sys.exit(app.exec())

    现在,您可以在Edit模式中修改示例代码,来开发Python应用程序。选择工具栏上的REPL启动Python交互式shell,要启动shell并将当前文件作为模块导入,请选择select REPL import file。要从文件中导入所有函数,请选择REPL import *。

    总是在修改UI文件后重新生成Python代码。

    在Design模式下打开.ui文件,在Qt Designer中创建一个基于小部件的UI。

    Window向导将类似的代码添加到源文件中,但不添加UI位。

    Empty向导将类似的代码添加到源文件中,但是它不添加任何类,因此您需要自己添加并实例化它们。

  • 相关阅读:
    基于Nodejs的知识信息分享平台的设计和实现
    面试官不讲武德,产品经理如何“耗子尾汁”?
    pandas read_json时ValueError: Expected object or value的解决方案
    vue组件库开发,webpack打包,发布npm
    【传知代码】BERT论文解读及情感分类实战-论文复现
    编写一个代码将一个带头节点的单链表A分解为两个带头结点的A和B,使得A表中含有原表中序号为奇数的元素,B表中含有序号为偶数的元素,保持相对位置不变
    大表删除操作
    911. 在线选举
    计算机毕业设计 | SpringBoot+vue的家庭理财 财务管理系统(附源码)
    “Python+”集成技术高光谱遥感数据处理
  • 原文地址:https://blog.csdn.net/AABBbaby/article/details/127800471