【实操教程】如何开始用Qt Widgets编程?(一)

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

在本文中,我们通过使用C++和Qt Widgets模块实现一个简单的记事本应用程序来学习基本的Qt知识,该应用程序是一个小型的文本编辑器,允许您创建文本文件、保存、打印或重新打开并在此编辑它,还可以设置要使用的字体。

【实操干货】如何开始用Qt Widgets编程?(一)

点击获取Qt Widget组件下载(Q技术交流:166830288)

运行示例

要从Qt Creator中运行示例,请打开Welcome模式并从Examples中选择示例。

创建Notepad(记事本)项目

在Qt Creator中设置一个新项目是由一个向导帮助的,该向导指导您逐步完成项目创建过程。向导提示输入特定类型项目所需的设置,并创建项目。

注意:Qt Creator中的UI文本和生成文件的内容取决于您使用的Qt Creator版本。

【实操干货】如何开始用Qt Widgets编程?(一)

要创建记事本项目,请选择File > New Project > Application (Qt) > Qt Widgets Application > Choose,然后按照想到的说明进行操作。在Class Information(类信息)对话框总,输入Notepad作为类名,并选择QMainWindow作为基类。

【实操干货】如何开始用Qt Widgets编程?(一)

Qt Widgets Application向导创建一个项目,其中包含一个主源文件和一组指定用户界面的文件(Notepad widget):

  • CMakeLists.txt - 项目文件。
  • main.cpp - 应用程序的主要源文件。
  • notepad.cpp - Notepad小部件的notepad类源文件。
  • notepad.h - Notepad小部件的notepad类头文件。
  • notepad. ui - Notepad小部件的UI表单。

这些文件附带了必要的模板代码,使您能够构建和运行项目,我们将在之后的几节中仔细研究文件内容。

主源文件

向导在main.cpp文件中生成以下代码:

#include "notepad.h"#include <QApplication>int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Notepad w;
w.show();
return a.exec();
}

我们将逐行浏览代码,下面几行包括Notepad小部件和QApplication的头文件,所有Qt类都有一个以它们命名的头文件。

#include "notepad.h"#include <QApplication>

下面这行定义了main函数,它是所有基于C和c++的应用程序的入口点:

int main(int argc, char *argv[])

下面这行代码创建了一个QApplication 对象,这个对象管理应用程序范围内的资源,并且是运行任何使用Qt Widgets的Qt程序所必需的。它用argv中运行的argc命令行参数构造一个应用程序对象。(对于不使用Qt Widgets的GUI应用程序,您可以使用QGuiApplication代替。)

QApplication a(argc, argv);

下一行代码创建Notepad对象,这是向导为其创建类和UI文件的对象。用户界面包含可视化元素,这些元素在Qt中被称为小部件,小部件的示例有文本编辑、滚动条、标签和单选按钮。一个小部件也可以是其他小部件的容器;例如,对话框或主应用程序窗口。

Notepad w;

下面一行显示了Notepad小部件在屏幕上的窗口,小部件还可以用作容器。一个例子是QMainWindow,它通常包含几种类型的小部件。默认情况下,小部件是不可见的;函数show()使小部件可见。

w.show();

下面一行使QApplication进入它的事件循环,当Qt应用程序运行时,会生成事件并将其发送给应用程序的小部件,事件的示例是鼠标按压和按键。

return a.exec();

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

乳腺癌CT影像数据的深度学习:R语言与ANN神经网络构建高性能分类诊断模型

一、引言 乳腺癌是全球最常见的女性恶性肿瘤之一&#xff0c;也影响着男性的健康。据统计&#xff0c;每年有数百万人被诊断出患有乳腺癌[1]。乳腺癌的早期检测和准确诊断对于治疗和预后至关重要。然而&#xff0c;乳腺癌的早期诊断面临许多挑战&#xff0c;如图像解读的主观性…

Qt QThread的moveToThread方法使用

Qt线程简介 从 Qt4.4 版本之后&#xff0c;因为 QThread 的 run 方法创建新线程这样实现与 Qt 设计的理念不符&#xff0c;Qt 主推使用 moveToThread 方法来创建新线程。QThread 应该被看做是操作系统线程的接口或控制点&#xff0c;而不应该包含需要在新线程中运行的代码。需…

数据结构10 -查找_树表查找

创建二叉搜索树 二叉搜索树 二叉搜索树是有数值的了&#xff0c;二叉搜索树是一个有序树。 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它的根结点的值&#xff1b; 若它的右子树不空&#xff0c;则右子树上所有结点的值均大于它的根结点的值&#xff1b; 它…

在线LaTeX公式编辑器编辑公式

在线LaTeX公式编辑器编辑公式 在编辑LaTex文档时候&#xff0c;需要输入公式&#xff0c;可以使用在线LaTeX公式编辑器编辑公式&#xff0c;其链接为: 在线LaTeX公式编辑器&#xff0c;https://www.latexlive.com/home 图1 在线LaTeX公式编辑器界面 图2 在线LaTeX公式编辑器…

Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别

Hive Hadoop Hive 和传统关系型数据库区别 Spark 概念 基于内存的分布式计算框架 只负责算 不负责存 spark 在离线计算 功能上 类似于mapreduce的作用 MapReduce的缺点 运行速度慢 &#xff08;没有充分利用内存&#xff09;接口比较简单&#xff0c;仅支持Map Reduce功能…

W5100S-EVB-PICO做DNS Client进行域名解析(四)

前言 在上一章节中我们用W5100S-EVB-PICO通过dhcp获取ip地址&#xff08;网关&#xff0c;子网掩码&#xff0c;dns服务器&#xff09;等信息&#xff0c;给我们的开发板配置网络信息&#xff0c;成功的接入网络中&#xff0c;那么本章将教大家如何让我们的开发板进行DNS域名解…

kubernetes基于helm部署gitlab

kubernetes基于helm部署gitlab 这篇博文介绍如何在 Kubernetes 中使用helm部署 GitLab。 先决条件 已运行的 Kubernetes 集群负载均衡器&#xff0c;为ingress-nginx控制器提供EXTERNAL-IP&#xff0c;本示例使用metallb默认存储类&#xff0c;为gitlab pods提供持久化存储&…

深度学习Redis(2):持久化

前言 在上一篇文章中&#xff0c;介绍Redis的内存模型&#xff0c;从这篇文章开始&#xff0c;将依次介绍Redis高可用相关的知识——持久化、复制(及读写分离)、哨兵、以及集群。 本文将先说明上述几种技术分别解决了Redis高可用的什么问题&#xff1b;然后详细介绍Redis的持…

HTML 基础标签

前言 当今互联网时代&#xff0c;网页是我们获取信息、交流和展示自己的重要渠道之一。而HTML&#xff08;超文本标记语言&#xff09;作为构建网页的基础&#xff0c;学习掌握HTML标签成为了必不可少的技能。 标题标签 <h1>~<h6>&#xff1a;这是用来定义标题的…

Whole Tomato Visual Assist X Crack

Whole Tomato Visual Assist X Crack Visual Assist X通过Visual Studio中的关键新功能和对现有功能的改进&#xff0c;大大缩短了应用程序开发时间&#xff0c;使您能够&#xff1a;Visual Assist提高了自动化程度&#xff0c;简化了导航&#xff0c;并在开发过程中显示重要信…

基于双端口RAM的乒乓操作测试

文章目录 前言一、乒乓操作简介二、双端口RAM配置三、RAM控制模块设计四、乒乓操作验证 前言 本文将介绍基于双端口RAM的乒乓操作测试&#xff0c;并探索如何在AWC_C4MB开发板上实现这一测试。双端口RAM作为一种性能出色且功能强大的存储器设计&#xff0c;为我们提供了并发访问…

如何与 Boot Barn 建立 EDI 连接?

Boot Barn 专注于提供各种高品质的靴子、鞋类和西部服饰。其经营范围广泛&#xff0c;为广大顾客提供最新潮流和经典款式的选择。 Boot Barn 的使命是成为顾客在西部风格时尚领域的首选购物地点。多年来&#xff0c;Boot Barn 凭借卓越的服务和优质的产品赢得了众多客户的信赖和…