【实操教程】如何开始用Qt Widgets编程?(一) Qt是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写所有平台无差别运行更提供了几乎所有开发过程中需要用到的工具。如今Qt已被运用于超过70个行业、数千家企业支持数百万设备及应用。在本文中我们通过使用C和Qt Widgets模块实现一个简单的记事本应用程序来学习基本的Qt知识该应用程序是一个小型的文本编辑器允许您创建文本文件、保存、打印或重新打开并在此编辑它还可以设置要使用的字体。运行示例要从Qt Creator中运行示例请打开Welcome模式并从Examples中选择示例。创建Notepad记事本项目在Qt Creator中设置一个新项目是由一个向导帮助的该向导指导您逐步完成项目创建过程。向导提示输入特定类型项目所需的设置并创建项目。注意Qt Creator中的UI文本和生成文件的内容取决于您使用的Qt Creator版本。要创建记事本项目请选择File New Project Application (Qt) Qt Widgets Application Choose然后按照想到的说明进行操作。在Class Information类信息对话框总输入Notepad作为类名并选择QMainWindow作为基类。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();

相关新闻

最新新闻

ExifToolGUI:Windows平台下最简单强大的图片元数据编辑工具完整指南

ExifToolGUI:Windows平台下最简单强大的图片元数据编辑工具完整指南

ExifToolGUI:Windows平台下最简单强大的图片元数据编辑工具完整指南 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾为管理大量照片的拍摄信息而烦恼?面对复杂的EXIF、XMP、…

2026/8/8 18:34:42
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)

【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

2026/8/8 18:34:42
pickle序列化10亿布尔数组内存炸了?Python从parquet到混合布尔数组的踩坑实录

pickle序列化10亿布尔数组内存炸了?Python从parquet到混合布尔数组的踩坑实录

「部分情节为虚构演绎,仅供参考」做机器学习特征工程的都知道,布尔特征(bool feature)是数据管道里最常见也最烦人的东西。用户是否点击过、是否购买过、是否在7天内活跃过、是否看过某个广告……每个特征就是一个巨大的布尔数组。…

2026/8/8 18:34:42
5分钟快速搭建Windows C/C++开发环境:w64devkit便携式开发工具包终极指南

5分钟快速搭建Windows C/C++开发环境:w64devkit便携式开发工具包终极指南

5分钟快速搭建Windows C/C开发环境:w64devkit便携式开发工具包终极指南 【免费下载链接】w64devkit Portable C and C Development Kit for x64 (and x86) Windows 项目地址: https://gitcode.com/gh_mirrors/w6/w64devkit 你是否厌倦了在Windows上配置C/C开…

2026/8/8 18:34:42
5分钟掌握PPT智能计时器:告别演讲超时的终极方案

5分钟掌握PPT智能计时器:告别演讲超时的终极方案

5分钟掌握PPT智能计时器:告别演讲超时的终极方案 【免费下载链接】ppttimer 一个简易的 PPT 计时器 项目地址: https://gitcode.com/gh_mirrors/pp/ppttimer 还在为PPT演示时间控制而焦虑吗?每次演讲都担心超时或提前结束,影响整体效果…

2026/8/8 18:34:42
Grayskull源码解析:单头文件设计背后的工程思想与最佳实践

Grayskull源码解析:单头文件设计背后的工程思想与最佳实践

Nano Node容器化部署教程:使用Docker快速部署生产环境 【免费下载链接】nano-node Nano is digital currency. Its ticker is: XNO and its currency symbol is: Ӿ 项目地址: https://gitcode.com/gh_mirrors/na/nano-node Nano节点容器化部署是快速搭建区块…

2026/8/8 18:29:42