【C++】 Qt-认识Qt

news2024/9/22 19:21:15

文章目录

      • Qt简介
      • Qt建立工程
        • 准备
        • 建立控制台程序
        • 建立桌面窗口程序

Qt简介

Qt(官方发音[kju:t],同音cute)是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。同时也是图像用户界面应用程序框架,他为应用程序开发者提供建立艺术级图形界面所需的功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。

Qt支持的操作系统有很多,例如通用操练系统Windows、Linux、Unix,智能手机系统Android、IOS、WinPhone,嵌入式系统QNX、VxWorks 等等。

Qt虽然经常被当作一个GUI库,用来开发图形界面应用程序,但这并不是Qt的全部;Qt除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其他功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等,这些Qt都已经内置了。

用Qt来开发Windows桌面程序有以下优点:

  1. 简单易学:Qt封装的很好,几行代码就可以开发出一个简单的客户端,不需要了解Windows API。
  2. 跨平台:如果你的程序需要运行在多个平台下,同时又希望降低开发成本,Qt几乎是必备的。
  3. 漂亮的界面:Qt很容易做出漂亮的界面和炫酷的动画,而MFC、WTL、wxWidgets比较麻烦。
  4. 独立安装:Qt程序最终会编译为本地代码,不需要其他库的支撑,而Java要安装虚拟机,C#要安装.NET Framework。

Qt建立工程

准备

刚打开我们的Qt时界面应该是这样的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2stqI7pe-1687405091951)(C++.assets/image-20230612231737644.png)]

在工具菜单中找到选项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gVRp5VxR-1687405091952)(C++.assets/image-20230612235458035.png)]

然后找到文本编辑器,看默认编码是否为UTF-8,为了方便开发和避免中文乱码问题,将文本编辑器的默认编码改成【UTF-8】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K3IJSgU4-1687405091953)(C++.assets/image-20230612235541738.png)]

建立控制台程序

我们选择Application下的Qt Console Application

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s99L867H-1687405091953)(C++.assets/image-20230612232525213.png)]

然后填写名称并选择路径(名称和路径不能带中文、空格)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s8miVkKQ-1687405091954)(C++.assets/image-20230612232711449.png)]

选择一个合适的编辑套件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wlgOqst2-1687405091954)(C++.assets/image-20230612233204752.png)]

然后一路下一步直到完成,最终会添加一个.pro和一个.cpp文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tj6dzVnm-1687405091954)(C++.assets/image-20230612233254931.png)]

这里的main函数跟vs里的略有差别,多了命令行参数。

可以尝试输出命令行

#include <QCoreApplication>
#include <iostream>
using namespace std;

//argc:命令行参数的数量
//argv:具体的命令行参数,数组

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    for(int i=0;i<argc;i++){
        cout<<"cmd = "<<argv[i]<<endl;
    }

    return a.exec();
}

默认是输出路径与exe名称

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CWOVFGqu-1687405091955)(C++.assets/image-20230612235016001.png)]

有关运行的一些按键功能

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Og7zErAn-1687405091955)(C++.assets/image-20230613002105697.png)]

也可以手动配置命令行参数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bwykbQQV-1687405091955)(C++.assets/image-20230612235332181.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qJu9Vkox-1687405091956)(C++.assets/image-20230612235345641.png)]

建立桌面窗口程序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EvszOy52-1687405091956)(C++.assets/image-20230613000000207.png)]

会自动创建出工程文件、主窗口头文件、主函数源文件、主窗口源文件和ui界面文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Rbmrru0-1687405091956)(C++.assets/image-20230613000452855.png)]

初始运行窗口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ayh10Gb3-1687405091956)(C++.assets/image-20230613002154851.png)]

双击ui文件可以进入到设计界面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cIXED2tr-1687405091957)(C++.assets/image-20230613002402200.png)]

左侧有很多组件,可以直接拖拽到窗口上,然后双击可以进行编辑

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X5igRx9S-1687405091957)(C++.assets/image-20230613002614913.png)]

然后再运行这些组件就在窗口上了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lQjHiY5l-1687405091957)(C++.assets/image-20230613002645383.png)]

但是具体按下哪个按钮有什么作用,会发生什么,还没有添加,这与后面要学的信号槽有关。

我们添加的每一个组件在界面右侧上半部分都会创建出对应的类和对象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6okNcrYg-1687405091958)(C++.assets/image-20230613003242532.png)]

右侧下半部分为窗口中所涉及到的有关属性和值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QUHHLEHV-1687405091958)(C++.assets/image-20230613003523469.png)]

这些组件都是建立在Ui的MainWindow类中的。在ui_mainwindow.h头文件中可以找到。这个文件是后生成的,根据我们添加的组件自动在这里生成。

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

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

相关文章

Android之 日历单选多选控件

一&#xff0c;效果图 1.1 单选 2.2 多选 二 实现思路 2.1 数据来源&#xff0c;利用原生日历Calendar&#xff0c;获取从本月开始的往后一年的日期&#xff0c;遍历月数添加全部天数据 private void initCalendarData() {Calendar calendar Calendar.getInstance();year …

Chrome(Manifest Version 3) 浏览器扩展插件基础教程

文章目录 一、简介二、核心介绍三、自定义页面背景色三、设置页面背景图&#xff08;web_accessible_resources&#xff09;四、设置徽章&#xff08;Badge&#xff09;五、桌面通知六、消息通信七、自定义右键菜单&#xff08;添加、更新、删除&#xff09;八、Omnibox九、浏览…

网安笔记--整合

文章目录 1 intro威胁因素 2 加密密码体制分类安全性 3 DESDES工作模式多重DES和安全性加密策略 4 RSA PKCS保密系统体制分类单向函数用处 RSAElgamal 5 SHAHASHSHA-1SHA-2 6 数字签名基本概念签名体系MAC 消息认证码 7 密码协议协议距离协议分类密钥建立协议认证建立协议认证的…

云原生监控平台 Prometheus 的相关概念及部署

1 Prometheus简介 Prometheus 是一个开源的系统监控和报警系统&#xff0c;在 2012 年由 SoundCloud 公司创建&#xff0c;并于 2015 年正式发布。2016 年&#xff0c;Prometheus 正式加入 CNCF (Cloud Native Computing Foundation)&#xff0c;成为继kubernetes之后第二个在C…

Redis---集群

目录 一、集群的介绍 1.1 为什么需要集群呢&#xff1f; 1.2 什么是集群&#xff1f; 1.2 集群能干什么呢&#xff1f; 二、集群的算法之分片&槽位slot 2.1 什么是槽位slot&#xff1f; 2.2 分片 2.3 使用槽位和分片的优势 2.4 slot 槽位映射的三种算法 1、哈…

postgresql 从应用角度看快照snapshot使用,事务隔离控制不再神密

​专栏内容&#xff1a;postgresql内核源码分析 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 快照使用 快照是事务中使用&#xff0c;配合事务的隔离级别&#xff0c;体现出不同的可见性。…

端午节粽子(python)

目录 前言 正文 粽叶绘制 粽叶绳绘制 祝福语绘制 源代码 总结 前言 今天端午节&#xff0c;然后昨天也学习一下绘图的相关知识&#xff0c;然后就想看一下能不能画一下&#xff0c;结果还是有点困难的&#xff0c;用CharAI生成简直一言难尽了。后面是找了一个改了一下。 …

MicroBlaze Processor hello world实验

MicroBlaze Processor hello world实验 实验目的 搭建microblaze工程&#xff0c;通过串口打印hello world&#xff0c;了解microblaze的使用&#xff0c;加深对FPGA硬件和软件开发的理解。 实验原理 MicroBlaze Processor是xilinx提供的一个软核处理器&#xff08;使用FPGA…

Delta型腿机器狗全动作展示

1. 功能说明 本文示例将实现R322样机Delta型腿机器狗维持身体平衡、原地圆形摆动、原地踏步、蹲起、站立、前进、后退、转向、横向移动、斜向移动等功能。 2. 电子硬件 本实验中采用了以下硬件&#xff1a; 主控板 Basra主控板&#xff08;兼容Arduino Uno&#xff09;‍ 扩展…

追寻技术巅峰:开发者的端午征途

近年来&#xff0c;随着信息技术的飞速发展&#xff0c;开发者们以前所未有的速度和规模推动着技术的进步。而正如端午节的文化内涵所体现的那样&#xff0c;我们以屈原名言为指引&#xff0c;勉励着广大开发者在技术征途上不断追求极致&#xff0c;勇往直前。 一、端午节与技术…

macOS Sonoma 14 beta 2 (23A5276g) Boot ISO 原版可引导镜像

macOS Sonoma 14 beta 2 (23A5276g) Boot ISO 原版可引导镜像 本站下载的 macOS 软件包&#xff0c;既可以拖拽到 Applications&#xff08;应用程序&#xff09;下直接安装&#xff0c;也可以制作启动 U 盘安装&#xff0c;或者在虚拟机中启动安装。另外也支持在 Windows 和 …

【Flume】高级组件之Sink Processors及项目实践(Sink负载均衡和故障转移)

文章目录 1. 组件简介2. 项目实践2.1 负载均衡2.1.1 需求2.1.2 配置2.1.3 运行 2.2 故障转移2.2.1 需求2.2.2 配置2.2.3 运行 1. 组件简介 Sink Processors类型包括这三种&#xff1a;Default Sink Processor、Load balancing Sink Processor和Failover Sink Processor。 Defa…

AIGC连续内容生成几种方案

背景 从AI可以画图到现在各家都在功课的连续性内容的输出&#xff0c;正在AI画图进入到大众圈其实也不过1年左右时间。对于单图的研究已经逐渐完善&#xff0c;单图理论上讲&#xff0c;只要你能按要求做promt的设计出图率应该是比较高的。但是对于要生成连续的图或者要生成连…

推荐 5 个 火火火 的 GitHub 项目

推荐 5 个开源项目&#xff0c;前两个是 AI 相关&#xff0c;后面 3 个为逛逛GitHub 的读者推荐&#xff0c;如果你挖掘到了很棒的开源项目&#xff0c;可以给老逛投稿。 本期推荐开源项目目录&#xff1a; 1. SuperAGI&#xff08;AI&#xff09; 2. 一键换脸&#xff08;AI&a…

macOS Monterey 12.6.7 (21G651) Boot ISO 原版可引导镜像

macOS Monterey 12.6.7 (21G651) Boot ISO 原版可引导镜像 本站下载的 macOS 软件包&#xff0c;既可以拖拽到 Applications&#xff08;应用程序&#xff09;下直接安装&#xff0c;也可以制作启动 U 盘安装&#xff0c;或者在虚拟机中启动安装。另外也支持在 Windows 和 Lin…

计算机实习自我鉴定范文5篇

精选计算机实习鉴定 (一) 时间过的真快&#xff0c;在这过去一个3个月时间里&#xff0c;我在**科技有限公司实习从事运维工作。 在公司实习的这段时间&#xff0c;我主要和其他的实习生一起负责公司刚开发的**系统的部署、更新以及维护。 这三月的时间&#xff0c;在同事和项目…

【并发知识点】CAS的实现原理及应用

系列文章目录 AQS的实现原理及应用 CAS的实现原理及应用 文章目录 系列文章目录前言1、CAS的概念2、CAS的实现原理3、单JVM内锁CAS实现3.1、效果 4、模拟赛龙舟比赛 前言 本章节介绍CAS概念、实现原理&#xff0c;并通过java代码应用&#xff0c;最终模拟赛龙舟比赛。 1、CA…

设计模式之适配器模式笔记

设计模式之适配器模式笔记 说明Adapter(适配器)目录类适配器模式示例类图适配者类的接口适配者类目标接口具体的SD卡类计算机类适配器类测试类 对象适配器模式适配者类的接口适配者类目标接口具体的SD卡类计算机类适配器类测试类 说明 记录下学习设计模式-适配器模式的写法。J…

力扣高频SQL50题(基础版)——第十天

力扣高频SQL50题(基础版)——第十天 1 只出现过一次的最大数字 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出1 1.1.3 示例输入输出2 1.2 示例sql语句 # 查不到时的结果自然就为Null SELECT MAX(t.num) num FROM (SELECT numFROM MyNumbersGROUP By numHAVING count…

窥探系列之Mybatis-plus BaseMapper实现

我们知道&#xff0c;mybatisplus的BaseMapper接口中提供了一些如updateById的方法&#xff0c;框架本身已经实现了这些CRUD功能&#xff0c;基本的CRUD我们就没必要写sql&#xff0c;直接使用java语法就能对数据进行操控&#xff0c;很方便。那么这些功能是如何被实现的呢&…