【Qt| 入门知识】怎样创建一个最简单 Qt 界面程序

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀
🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭
⏰发布时间⏰: 2024-09-09 09:00:00

本文未经允许,不得转发!!!

目录

  • 🎄一、概述
  • 🎄二、一个最简单的Qt程序
  • 🎄三、在 Linux 命令行编译Qt程序并运行
  • 🎄四、使用 Qt Creator 编译Qt程序并运行
  • 🎄五、总结


在这里插入图片描述
在这里插入图片描述

🎄一、概述

前面文章搭建了 Ubuntu 和 Windows 的 Qt 开发环境,这篇文章介绍怎样使用 Qt 开发环境写一个最简单 Qt 界面程序。文章的主要意图有如下三个:

  • 1、通过代码,初步认识Qt编程;
  • 2、在命令行怎样编译Qt程序;
  • 3、怎样使用Qt Creator 创建一个Qt项目并编译运行。

在这里插入图片描述

🎄二、一个最简单的Qt程序

这个小节直接就是一个Hello World,为什么是hello world,因为只有 hello world 才能带你入门 🤣🤣🤣。

“hello world ”的起源要追溯到 1972 年,贝尔实验室著名研究员 Brian Kernighan 在撰写“B 语言教程与指导(Tutorial Introduction to the Language B)”时初次使用(程序),这是目前已知最早的在计算机著作中将 hello 和 world 一起使用的记录。 第一个程序都是以“hello,world”作为默认的第一个程序,我们延续这种经典的做法吧,感受程序的伟大。 同时可以让我们初步了解 Qt 项目搭建的基础流程。

最简单的Qt程序代码如下:

#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{QApplication app(argc, argv);QLabel *label = new QLabel("Hello World!");label->show();return app.exec();
}

第 1 行和第 2 行包含了类 QApplication 和 QLabel 的定义。对于每个 Qt 类,都有一个与该类同名(且大写)的头文件,在这个头文件中包括了对该类的定义。
第 5 行创建了一个 QApplication 对象,用来管理整个应用程序所用的资源。argc, argv 表示传递给程序的命令行参数。
第 6 行创建了一个显示 “Hello World” 的 QLabel 窗口部件(Widget)。
第 7 行 使 QLabel 标签(label)可见。
第 8 行将应用程序的控制权传递给 Qt 。此时,程序会进人事件循环状态,这是一种等待模式,程序会等候用户的动作,例如鼠标单击和按键等操作。


在这里插入图片描述

🎄三、在 Linux 命令行编译Qt程序并运行

我这里是在Ubuntu 1804 的命令行演示的,在命令行编译程序需要用到 Qt 的 qmake:

  • 1、进到 Qt 代码所在的 01_HelloWorld 目录,执行下面命令,会生成一个与平台无关的项目文件:

    qmake -project
    

    在这里插入图片描述

  • 2、输人如下命令,从这个项目文件生成一个与平台相关的 makefile 文件:

    qmake 01_HelloWorld.pro
    

    或者

    qmake
    

    在这里插入图片描述

  • 3、输入下面命令,将根据 Makefile 编译程序。

    make
    

    因为我们使用的是Qt5以上的开发环境,所以这里会遇到一个编译错误:HelloWorld.cpp:1:10: fatal error: QApplication: 没有那个文件或目录
    在这里插入图片描述
    解决办法是,修改pro文件加入下面这一句:

    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    

    修改后的pro文件:
    在这里插入图片描述
    修改后再执行 make ,就编译通过并生成可执行程序 01_HelloWorld
    在这里插入图片描述

  • 4、运行 01_HelloWorld,就出现你的第一个 Qt 程序窗口了。注意必须在Ubuntu的界面终端去运行才行,如果在远程终端软件的命令行运行会报错。HelloWorld 的Qt窗口如下,一般在左上角的很小一个,如下图:
    在这里插入图片描述


在这里插入图片描述

🎄四、使用 Qt Creator 编译Qt程序并运行

这个小节介绍使用 Qt Creator 创建一个Qt程序并运行的详细步骤:

  • 1、在 Ubuntu1804 里打开 Qt Creator,也就是左下角软件中心处点击后,找到 Qt Creator 的图标后点击打开。
    在这里插入图片描述

  • 2、在 Qt Creator 中,选择新建文件或者项目。注意有快捷键 Ctrl + N。直接在 Qt Creator 激活状态和英文状态的输入法下使用“Ctrl + N”也可以快速打开新建项目。
    在这里插入图片描述

  • 3、项目模板选择Application(Qt)Qt Widgets Application,表示要创建的是 Qt 桌面程序:
    在这里插入图片描述

  • 4、给项目命名,并选择项目代码存放的目录,这个目录需要提前创建好:
    在这里插入图片描述

  • 5、构建系统选择 qmake,点击下一步:
    在这里插入图片描述

  • 6、给要创建的类命令为HelloWorld,基类选择 QMainWindow,勾选 Generate form,让它生成一个界面文件,三种基类的介绍如下:

    • QMainWindow:主窗口类,主窗口具有主菜单栏、工具栏和状态栏。 类似于一般的应用程
      序的主窗口。
    • QWidget:是可视界面类的基类,也就是说 QMainWindow 类也是由 QWidget 继承封装而来。
      所以 QWidget 要比 QMainWindow 功能少一些。
    • QDialog:对话框类,建立一个对话框界面。比较少使用此项作为基类。 一般以 QMainWindow
      和 QWidget 作为基类的居多。

    在这里插入图片描述

  • 7、翻译文件,这里先不管,直接none,然后下一步:
    在这里插入图片描述

  • 8、套件选择,这里选择之前安装的 Qt5.12.12 64位版本的:
    在这里插入图片描述

  • 9、最后是Qt Creator会帮我们生成的文件概览:点击完成:
    在这里插入图片描述

  • 10、最后,项目创建完成了,会得到下面几个文件:
    在这里插入图片描述

  • 11、点击左下角的三角形,或使用快捷键Ctrl+R,就可以运行程序了,程序运行后是一个空白的界面。
    在这里插入图片描述


在这里插入图片描述

🎄五、总结

👉本文介绍命令行编写一个Qt程序并执行的过程,然后也介绍了使用Qt Creator 创建一个Qt程序的过程。

在这里插入图片描述
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

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

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

相关文章

开启计算机的ssh 22端口

当我们使用一台服务器的时候&#xff0c;经常需要开启ssh 服务&#xff0c;有些系统没有默认开启服务&#xff0c;需要需要我们做一些配置&#xff0c;以下是完整配置过程和错误解决方法&#xff1a; 以下过程适合于当我们购买一台云主机时候配置远程登录 开启本地计算机的22…

孕期全攻略·如何成为一位准爸爸准妈妈

【智慧孕育&#xff0c;科学护航】 步入孕期&#xff0c;每一位准妈妈、准爸爸都渴望给予宝宝最好的开始。《孕期全攻略》汇集权威专家建议&#xff0c;为您打造一站式智慧孕育指南。从孕期各阶段的身体变化解析&#xff0c;到孕期疾病的预防与应对&#xff1b;从科学胎教方法&…

【Java】解析方法的调用关系

目录 一、方法的定义二、方法的声明格式三、方法的调用四、特殊方法&#xff1a;程序入口main方法五、方法的局部变量六、类的静态变量七、类的静态方法八、方法的传参九、方法的重载 一、方法的定义 方法就是 将功能重复的代码封装成一段独立的代码&#xff0c;通过调用方法的…

【网络】UDP协议的简单使用

目录 服务器 客户端 测试 code for Udp_echo_serve Udp_dict_serve UDP是基于socket&#xff08;基于IP和port进行通信就叫做socket通信&#xff09;进行网络通信的&#xff0c;那我们这篇博客就来介绍一下基于UDP通信的基本流程&#xff0c;先让服务端和客户端进行简单的…

深入探索Unity协程:揭开CSharp迭代器背后的神秘面纱

协程是一种特殊类型的迭代器方法&#xff0c;允许你在多个帧之间分段执行代码。可以用来处理时间延迟、异步操作和顺序执行的任务&#xff0c;而不阻塞主线程。Unity协程的实现依赖于C#语言提供的迭代器相关的语言特性&#xff0c;所以想要弄清楚Unity协程的底层原理&#xff0…

单例的饿汉式,懒汉式的线程安全问题

1 单例的饿汉式 对象在类加载的时候就创建了&#xff0c;线程安全&#xff0c;速度块&#xff0c;但是浪费空间&#xff0c; public class Hungry {//唯一对象private static final Hungry HUNGRY new Hungry();byte byte1[]new byte[1024];byte byte2[]new byte[1024];byte…

Java的时间复杂度和空间复杂度和常见排序

目录 一丶时间复杂度 二丶空间复杂度 三丶Java常见排序 1. 冒泡排序&#xff08;Bubble Sort&#xff09; 2.插入排序&#xff08;Insertion Sort&#xff09; 3.希尔排序&#xff08;Shell Sort&#xff09; 4.选择排序&#xff08;Selection Sort&#xff09; 5.堆排序&am…

qmt量化交易策略小白学习笔记第61期【qmt编程之期权行情数据--get_market_data_ex函数】

qmt编程之获取期权数据 期权行情数据 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 获取期权行情数据 获取期权最新数据&#xff0c;首先需要进行数据订阅。完成合约订阅后&#xff0c;用g…

【OpenCV】灰度化处理

文章目录 1. 图像灰度化处理对比2. 代码示例3. 二值化处理 1. 图像灰度化处理对比 2. 代码示例 #include <opencv2/opencv.hpp> using namespace cv;int main() {Mat currentImage imread("path_to_image.jpg"); // 读取彩色图像Mat grayImage;// 将彩色图像…

Rust的常数、作用域与所有权

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust到底值不值得学&#xff0c;之一 -CSDN博客 Rust到底值不值得学&#xff0c;之二-CSDN博客 Rust的数据类型-CSDN博客 3.7 常…

HTTP 二、进阶

四、安全 1、TLS是什么 &#xff08;1&#xff09;为什么要有HTTPS ​ 简单的回答是“因为 HTTP 不安全”。由于 HTTP 天生“明文”的特点&#xff0c;整个传输过程完全透明&#xff0c;任何人都能够在链路中截获、修改或者伪造请求 / 响应报文&#xff0c;数据不具有可…

阿里不认命

​ 转载&#xff1a;新熵 原创 作者丨萧维 编辑丨影蕨 国家定调了&#xff01;一系列积极信号为平台经济注入一剂强心针&#xff0c;阿里迎来新生。 最近&#xff0c;阿里捷报频传&#xff01; 先是8月28日&#xff0c;阿里巴巴完成香港双重主要上市。紧接着&#xff0c;8月…

基于聚类与LSTM对比特币价格深度分析与预测

1.项目背景 比特币作为全球最具影响力的加密货币之一&#xff0c;其价格受到多种复杂因素的共同作用&#xff0c;包括市场情绪、政策变化、大型机构的投资行为等&#xff0c;这些因素在不同的市场阶段对比特币价格波动产生直接或间接的影响。通过对比特币市场的深入分析&#…

66城代表齐聚!蓝卓分享“全国经验”,批量复制推动中小企业数字化转型

9月6日下午&#xff0c;2024中小企业数字化转型现场交流活动在浙江宁波隆重举行。 全国66个中小企业试点城市500多名中小企业主管部门及专家学者&#xff0c;制造业企业、数字化转型服务商等重点企业代表齐聚宁波&#xff0c;共同探讨中小企业数字化转型的模式和路径。 工业和…

酒店智能轻触开关:智慧化的创新实践

在追求高品质住宿体验的今天&#xff0c;酒店智能轻触开关作为智慧酒店建设的关键一环&#xff0c;正逐步成为提升酒店服务品质、优化运营效率、增强顾客满意度的有力工具。本文将深入探讨酒店智能轻触开关如何助力酒店实现智慧化管理&#xff0c;以及它所带来的多重变革。 一、…

VSCode连接docker

1.启动ssh服务 vim /root/.bashrc 或者 vim ~/.bashrc /usr/sbin/sshd #启动ssh服务~代表主目录&#xff0c;cd ~会返回root目录 cd / 返回最根上的目录 为了防止每次打开容器都要输入此指令&#xff0c;我们直接在 ~/.bashrc文件最后一行添加sshd启动命令即可。 打开终端…

【JAVA开源】基于Vue和SpringBoot的图书个性化推荐系统

本文项目编号 T 015 &#xff0c;文末自助获取源码 \color{red}{T015&#xff0c;文末自助获取源码} T015&#xff0c;文末自助获取源码 目录 一、系统介绍1.1 业务分析1.2 用例设计1.3 时序设计 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究…

掌握ChatGPT写论文六步提问法,会提问才能写出优质好论文

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题都可以分享,相互成就,共同进步,为大家带来最酷最有效的智能AI学术科研写作攻略。 今天给大家分享的是借助GPT一年发两篇SCI的学术大拿总结的ChatGPT六…

IPS和IDS有啥区别?

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330&scene21#wechat_redirect 《网安面试指南》…

ChatGPT付费创作系统V3.0.6独立版 WEB+H5+小程序端 (新增AI全网搜索+文档解析+豆包AI通道)安装部署教程

播播资源GPT付费体验系统最新版系统是一款基于ThinkPHP框架开发的AI问答小程序&#xff0c;是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。这是一种基于人工智能技术的问答系统&#xff0c;可以实现智能回答用户提出的问题。相比传统的问答系统&#xff0c;ChatGPT可以更…