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

news2024/11/18 17:44:06

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

点击获取Qt组件下载

在上篇文章中(点击这里回顾>>),我们为大家介绍了如何选择项目类型、创建基于Qt Widget的Python应用程序等,本文将继续为大家介绍如何指定项目内容,欢迎持续关注哦~

指定项目内容

一个项目可以包含以下文件:

  • 由构建编译或以其他方式处理
  • 安装
  • 没有安装,但是包含在使用make dist创建的源包中
  • 没有安装,也不是源代码包的一部分,但Qt Creator仍然知道

Qt Creator显示由Projects视图中的项目文件声明为项目一部分的所有文件,文件按文件类型(.cpp, .h, .qrc等)进行分类。若要显示其他文件,请编辑项目文件。或者开发人员可以在File System视图中查看项目目录中的所有文件。

将文件声明为项目的一部分,还可以使它们对定位器和项目范围的搜索可见。

CMake项目

在使用CMake时,开发人员可以通过将附加文件添加为源文件或安装它们来为项目指定附加文件。

例如,在CMakeLists.txt文件中,使用PRIVATE属性将文件定义为target_sources命令的值。

开发人员可以阻止CMake处理一些文件,例如不应该编译的.cpp文件。使用set_property命令和HEADER_FILE_ONLY属性来指定这些文件。例如:

set_property(SOURCE "${files}" PROPERTY HEADER_FILE_ONLY ON)

或者,要安装文件,使用带有files或DIRECTORY属性的install命令。

qmake项目

在.pro文件中使用以下变量:

  • 要编译文件的SOURCES和HEADERS
  • 安装INSTALLS的文件
  • 要包含源包中文件的DISTFILES
  • OTHER_FILES用于使用Qt Creator管理的文件,无需安装它们或将它们包含在源包中

例如,以下值包括源包中的文本文件:

DISTFILES += *.txt

向项目中添加子项目

除了Qt 库之外,开发人员还可以将应用程序链接到其他库,例如系统库或开发人员自己的库。此外,开发人员自己的库可能链接到其他库,要编译项目,必须将库添加到项目中。这还支持库的代码完成和语法高亮显示,向项目添加库的过程取决于开发人员使用的生成系统。

CMake项目

开发人员可以使用add_subdirectory命令将CMakeLists.txt文件添加到任何项目中,这些文件可以定义包含在顶级项目或任何其他CMake命令中的完整项目。

qmake项目

当开发人员创建一个新项目并选择qmake作为构建系统时,可以在项目管理对话框中将其作为子项目添加到另一个项目中。但是,根项目必须指定qmake使用subdirs模板来构建项目。

要创建根项目,请选择File > New Project > Other Project > Subdirs Project > Choose。

在Summary页面,选择Finish & Add Subproject来创建根项目并添加另一个项目,例如一个C++库。

向导创建一个项目文件(.pro),该文件定义了子dirs模板和作为subdirs变量值添加的子项目,还为子项目添加所有必要的文件。

要创建更多子项目,在Projects视图中右键单击项目名称来打开上下文菜单,并选择New Subproject,按照新建子项目向导中的步骤创建子项目。

要将现有项目添加为子项目,请在上下文菜单中选择Add Existing Projects,在文件浏览器对话框中,找到您的子项目。

要删除子项目,在Projects视图中右键单击项目名称,并在上下文菜单中选择Remove Subproject。

要指定依赖项,请使用Add Library向导。

将键盘快捷键绑定到向导

如果您经常使用向导,则可以将自定义键盘快捷方式绑定到它。触发此键盘快捷方式将直接打开向导,而不需要导航File > New File or New Project。

向导的键盘快捷键可以在Edit > Preferences > Environment > Keyboard > Wizard中设置,所有向导操作都以Impl开始。

Qt组件

  • QtitanRibbon - Ribbon UI组件:是一款遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,QtitanRibbon致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。
  • QtitanChart - Qt类图表组件:是一个C ++库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。
  • QtitanDataGrid - Qt网格组件:提供了一套完整的标准 QTableView 函数和传统组件无法实现的独特功能。使您能够将不同来源的各类数据加载到一个快速、灵活且功能强大的可编辑网格中,支持排序、分组、报告、创建带状列、拖放按钮和许多其他方便的功能。
  • QtitanDocking:允许您像 Visual Studio 一样为您的伟大应用程序配备可停靠面板和可停靠工具栏。黑色、白色、蓝色调色板完全支持 Visual Studio 2019 主题!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29747.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flink的状态编程

Flink 处理机制的核心,就是“有状态的流式计算”。在流处理中,数据是连续不断到来和处理的。每个任务进行计算处理时,可以基于当前数据直接转换得到输出结果;也可以依赖一些其他数据。这些由一个任务维护,并且用来计算…

【HAL库】STM32CubeMX开发----STM32F407----CAN通信实验

STM32CubeMX 下载和安装 详细教程 【HAL库】STM32CubeMX开发----STM32F407----目录 前言 本次实验以 STM32F407VET6 芯片为MCU,使用 25MHz 外部时钟源。 CAN通信波特率为 500K bps。 CAN通信引脚 与 MCU引脚 对应关系如下: CAN通信引脚MCU引脚TXPB9RXP…

虹科教您 | 虹科Automation softPLC入门操作指南(2)——子程序和用户自定义功能块 UDFB

虹科KPA Automation softPLC是为Linux、Xenomai、INtime、Windows等实时操作系统开发PLC的编程环境,适合需要使用IEC61131-3和PLCopen标准的控制技术和进行PLC编程的用户。本篇文章将帮助您创建和使用IEC语言开发的函数和功能块。 Automation softPLC Studio 命名规…

kettle 9.2源码打包和idea环境启动及常见错误

一:源码打包 这里为什么是kettle 9.2,因为kettle 9.3需要jdk11 这里直接去下载kettle的源码,tag9.2.0.4-R。这里需要自己搭建一个nexus仓库,因为有些包从kettle的仓库里面下载不下来。 nexus新建仓库代理, 记得加到public里面去 …

学术界or工业界,高校博后转行大厂工程师心得!

8本电子书免费送给大家,见文末。 导读:以下是这篇文章是一位 七月在线 学员的的学习和面试经历的分享,现将学员学习和面试心得分享给大家,祝大家都能有好的offer。 1 个人情况 我之前在高校做博后,现在转行到大厂做…

数据库的基本操作(7)

在这一篇博客中我将对数据库进行一个结尾,这将是关于数据库基本内容的结尾。 首先我们来简单总结一下前面的内容: 前面主要讲了Mysql中的索引和事务,这是面试必考的内容。 索引,怎么理解索引呢? 1.索引存在的意义&…

通用汽车在华加速推出智能电动车型

到2025年底前,推出超过15款基于奥特能平台打造的电动车型基于奥特能平台的雪佛兰FNR-XE纯电概念车全球首发通用汽车全新“软件定义汽车”平台将于明年正式推出近日,通用汽车中国在上海举办了“2022科技展望日”,展示了其在Ultium奥特能全球电…

IE高级配置中支持的SSL/TLS协议对应注册表值

一、手动勾选"Internet选项->高级->安全->使用TLS 1.2" 二、以编程方式勾选"Internet选项->高级->安全->使用TLS 1.2" 1.注册表值SecureProtocols对应的含义 注册表的路径为:HKEY_CURRENT_USER\Software\Microsoft\Windows…

【第六部分 | JavaScript高级】2:函数高级

目录 【第二章】函数进阶 | (复习)函数声明 | 函数也是对象 | 函数的this指向 | 改变函数this的指向 | 函数的“严格模式” | 闭包 | 浅拷贝和深拷贝 【第二章】函数进阶 | (复习)函数声明 | 函数也是对象 Java中的方法好…

Android基础二:常见的几种组件

关注我,会持续发布关于Android学习的内容! 文章目录 前言 一、MaterialButton 二、MaterialButtonToggleGroup 三、TextView 文本组件 四、ImageView控件 总结 前言 本节我们来学习安卓(Android)的几种常用的组件,包括…

PTA题目 装睡

你永远叫不醒一个装睡的人 —— 但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一系列人的呼吸频率与脉搏,请你找出他们…

VMware虚拟机安装ubuntu-16.04.5详细教程

不是每一位程序员都必须玩过linux,现在大多数服务器都是linux系统的,很多生产上的框架和工具都是安装在服务器上的,而且有不少大公司都要求熟悉在linux上开发,因此小编个人觉得大家有必要去了解一下linux(现在大部分服…

vue.js毕业设计,基于vue.js前后端分离图书购物商城系统设计与实现(H5移动项目)

功能介绍 【后台管理员功能】 会员列表:查看所有注册会员信息,支持删除 录入资讯:录入资讯标题、内容等信息 管理资讯:查看已录入资讯列表,支持删除和修改 广告设置:上传图片和设置小程序首页轮播图广告地…

RK3588-EDGE Ubuntu搭建HTTP服务器

一:开发环境 RK3588-EDGE版本根据指导文档开发环境需要Ubuntu18.04及以上。 本次选择在虚拟机中安装Ubuntu20.04进行开发。 二:安装Apache2 sudo apt-get install apache2 安装成功后配置文件位于“/etc/apache2 ” 其次在“/var/www/html”目录下会生成index.html文件…

mysql 多版本冲突安装(5..5和5.7)

1.我先装好了了5.5但是发现版本过低,需要重新装5.7(所以只记录5.7的安装过程) zip版的5.7,先解压 创建my.ini文件 [mysqld] port 3306 basedirC:\D\mysql-5.7.29-winx64datadirC:\D\mysql-5.7.29-winx64/data max_connections2…

视频编解码 — 帧内预测

目录 帧内预测 块大小 帧内预测模式 4x4 亮度块的帧内预测模式(9种) 16x16亮度块的帧内预测模式 8x8色度块的帧内预测模式 帧内预测模式的选择 率失真优化 帧内预测 一张图像中相邻像素的亮度和色度信息是比较接近的,并且亮度和色度…

【windows】实战部署一(安装)SVNserver服务端+SVNclient客户端

1、环境准备 下载SVNserver https://www.visualsvn.com/server/download/ 下载SVNclient https://tortoisesvn.net/downloads.html 语言包位置: 2、安装SVNserver 1、下载后运行msi文件: 2、点击Next下一步: 3、勾选同意,点…

雷达SAR成像仿真的应用(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

window 下兼容多各低版本的chrome测试

分享我做前端浏览器版本兼容测试遇到Chrome不能多版本共存,存在高版本覆盖低版本问题的解决方案,这个方法不影响Windows系统内已安装的Chrome下载你想要的chrome版本,我是在这里找寻下载版本的:https://www.chromedownloads.net/c…

大数据生态圈及分布式文件系统HDFS实践part2

前言 问题引入 (这是以前讲课的时候,给学生准备的一些问题,大家可以思考一下,对理解HDFS很有帮助) 1、如果一个文件中有10个数值(一行一个,并且都是可以用int来度量), …