【QT5】<总览一> QT环境搭建、快捷键及编程规范

文章目录

前言

一、简单介绍QT

二、安装QT Creator

三、第一个QT项目

四、常用快捷键

五、QT中的编程规范


前言

在嵌入式Linux应用层开发时,经常使用QT作为图形化界面显示工具。为学习Linux下的QT编程,在Ubuntu和开发板中搭建QT开发环境,并记录学习中的知识点与代码。本篇基于Ubuntu 18.04和QT 5.12.9,参考教程视频:【正点原子】Qt教程。若存在版权问题,请联系作者删除!


一、简单介绍QT

1. QT简介

  • QT是一个跨平台的C++开发库,主要用于开发图形用户界面(GUI)。
  • QT官网:https://www.qt.io/
  • QT下载网址:http://download.qt.io/archive/qt/
  • QT5新功能介绍:https://doc.qt.io/qt-5/qt5-intro.html

2. QT历史

  • 起源:Haavard Nord和Eirik Chambe-Eng于1991年开始开发Qt
  • 公司:1994年创立公司,最早名为Quasar Technologies,然后更名为TrollTech,再改为Trolltech,中文名为“奇趣科技”。
  • 版本:2020年发布Qt6。

二、安装QT Creator

1. QT Creator:是QT开发的集成开发环境(IDE)。

2. Windows安装QT Creator:跟随视频教程windows下安装QT Creator。

3. Ubuntu安装QT Creator:考虑磁盘空间有限,只在Ubuntu中安装了QT。

①打开Ubuntu终端,使用wget命令下载QT 5.12.9的qt-opensource-linux-x64-5.12.9.run

wget https://download.qt.io/archive/qt/5.12/5.12.9/qt-opensource-linux-x64-5.12.9.run

②添加可执行权限:

chmod +x qt-opensource-linux-x64-5.12.9.run

③使用sudo安装,这样会安装在/opt 目录下:

sudo ./qt-opensource-linux-x64-5.12.9.run

④点击Ubuntu右上角,turn off网络再安装,可以跳过QT账号信息。

⑤安装时选择常用的组件即可,否则会占用大量空间,如下图所示。

⑥点击Ubuntu左下角,双击QT Creator打开,如下图所示。

4. 配置QT Creator配置中文:Ubuntu下配置Qt Creator输入中文。

5. Ubuntu中C++环境配置:

①前置说明:若在QT Creator新建c++工程后,无法正常编译,就是缺少相关指令,需要安装g++和相关库。

②安装指令:

sudo apt-get install gcc g++
sudo apt-get install lsb-core lib32stdc++6

③测试结果:


三、第一个QT项目

1. 新建项目:

  • 可以参考正点原子的文档。
  • 具体流程:点击"文件"--->"Application (Qt)"和"Qt Widgets Application"--->设置项目名称和地址--->选择"qmake"--->选择基类"QMainWindow"或"QWidget"(前者有标题和状态栏,后者是单个界面)--->一直下一步即可。
  • Cannot find -lgL报错解决:在终端输入如下指令:
  • sudo apt-get install libglu1-mesa-dev

2. 项目文件介绍:

3. 程序启动流程:

在创建一个项目,自定义窗口类为MyWindow后,QT会生成main.cpp、mywindow.cpp、mywindow.h、mywindow.ui文件,解下来我们逐一分析。

①main.cpp:

#include "mywindow.h"
#include <QApplication>//main函数是程序入口
//argc是命令行参数个数,argv保存参数
int main(int argc, char *argv[])
{//QApplication a(argc, argv):管理QT程序运行并设置QT应用程序,针对QWidget//QGuiApplication a(argc, argv):管理QT程序运行并设置QT应用程序,针对非QWidget//QCoreApplication a(argc, argv):管理QT程序运行并设置QT应用程序,针对无界面程序QApplication a(argc, argv);MyWindow w; //实例化的对象w.show();   //显示图形化窗口//事件循环,底层调用QEventLoop::exec(),等待鼠标或键盘输入return a.exec();
}

②mywindow.h:

#ifndef MYWINDOW_H
#define MYWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MyWindow; }
QT_END_NAMESPACE//自定义的MyWindow继承了QMainWindow类
class MyWindow : public QMainWindow
{//宏定义:涉及QT信号槽Q_OBJECTpublic:MyWindow(QWidget *parent = nullptr);//构造函数~MyWindow();//析构函数private:Ui::MyWindow *ui;//成员变量:绑定图形化窗口
};
#endif // MYWINDOW_H

③mywindow.cpp:

#include "mywindow.h"
#include "ui_mywindow.h"//MyWindow构造函数的具体实现
MyWindow::MyWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MyWindow)
{ui->setupUi(this);
}//MyWindow析构函数的具体实现
MyWindow::~MyWindow()
{delete ui;
}

④mywindow.ui:用于ui设计,可以创建精美的ui界面。如下图,可以拖动左边的控件到中间的界面上,同时在右边属性栏设置坐标、字体大小和颜色等属性。


四、常用快捷键

【1】新建项目:Ctrl+N

【2】自动对齐代码:Ctrl+I

【3】移动代码至上一行/下一行:Ctrl+Shift+UP/Ctrl+Shift+DOWN

【4】跳转到上一行/下一行:Ctrl+Shift+Enter/Ctrl+Enter

【5】切换头文件和源文件:F4

【6】查看某个类的父类和子类:Ctrl+Shift+T


五、QT中的编程规范

  • 文件名:全小写
  • 类名:大驼峰XxxYyyZzz
  • 函数名:小驼峰xxxYyyZzz
  • 变量名:小驼峰xxxYyyZzz

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

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

相关文章

TMS320F280049 ECAP模块--应用(2)

例1-上升沿触发 如下图所示&#xff0c;evt1-4设置为上升沿触发&#xff0c;在每个上升沿ctr值依次加载到cap1-4. 例2-上升下降沿触发 每个边沿都可选为事件&#xff0c;每次事件到来&#xff0c;依次把ctr加载到cap1-4。 例3-差异模式下上升沿触发 差异模式下每次事件到来时…

Qt_C++ RFID网络读卡器Socket Udp通讯示例源码

本示例使用的设备&#xff1a; WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QHostInfo> #include <QNetworkInterface> #include <…

PyQt5串口测试工具

笔者经常会遇到使用上位机进行相关测试的场景&#xff0c;但现成的上位机并不能完全满足自己的需求&#xff0c;或是上位机缺乏使用说明。所以&#xff0c;自己写&#xff1f; 环境说明 pycharm 2023.2.25 python 3.10 anaconda 环境配置 conda create -n envsram ##…

学生信息管理系统C++

设计目的 使学生进一步理解和掌握课堂上所学的面向对象C编程知识&#xff0c;巩固和加深学生对C面向对象课程的基本知识的理解和掌握。掌握C面向对象编程和程序调试的基本技能&#xff0c;学会利用C语言进行基本的软件设计&#xff0c;着重提高运用C面向对象语言解决实际问题的…

Go Modules 使用

文章参考https://blog.csdn.net/wohu1104/article/details/110505489 不使用Go Modules&#xff0c;所有的依赖包都是存放在 GOPATH /pkg下&#xff0c;没有版本控制。如果 package 没有做到完全的向前兼容&#xff0c;会导致多个项目无法运行(包版本需求不同)。 于是推出了g…

秋招突击——第四弹——Java的SSN框架快速入门——Spring(2)

文章目录 前言其他Spring加载properties 容器创建容器获取beanBeanFactory容器总结 注解注解开发对定义bean纯注解开发Bean管理Bean作用范围Bean生命周期 注解开发依赖注入第三方bean管理第三方bean管理第三方bean注入 注解开发总结 Spring整合整合mybatis整合Junit AOPAOP核心…

【C、C++编译工具】CLion工具介绍与安装

一、问题 最近突发奇想想学学最开始接触的语言C&#xff0c;之前大学的时候用的更多的工具还是VC&#xff0c;工作后慢慢接触了CLion&#xff0c;跟pycharm其实差不多&#xff0c;都是集成开发环境&#xff08;IDE&#xff09; 解释&#xff1a;什么是 IDE&#xff1f; 根据计…

2024年5月 | deepin 深度应用商店-应用更新记录

新增应用 序号应用名称deepin 系统版本应用分类应用类型1HitPaw Watermark Removerdeepin V23图形图像wine2PDF to DOCX转换器deepin V23网络应用linux3天工 AIdeepin V20.9效率办公linux4稻壳阅读deepin 20.9 deepin V23效率办公linux5讯飞星火deepin V20.9效率办公linux6文…

扩散模型的技术原理和应用价值

引言 一、扩散模型的基本概念 扩散模型(Diffusion Models)是一种基于概率论的生成模型&#xff0c;最初源自物理学中的扩散过程理论&#xff0c;比如墨水在水中的扩散过程。在机器学习领域&#xff0c;这一概念被创造性地应用于数据生成任务&#xff0c;特别是图像和声音的合成…

Proxmox Backup Server 命名空间使用

作者&#xff1a;田逸&#xff08;formyz&#xff09; Proxmox Backup Server&#xff08;一下统称PBS&#xff09;从2.2版本开始&#xff0c;新增了命名空间这样一个功能。这个功能大大便利了多Proxmox VE集群或者单节点备份&#xff0c;在以前PBS版本中&#xff0c;如果有多个…

HTML旋转照片盒子

效果图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible" content…

世界的本质是旋转(9) 利用声波传输mFSK多音调频文本

在上一篇文章中 &#xff0c;主要介绍的是使用专用的业余无线电设备传输调相波形。 对于买不起SDR设备的学生来说&#xff0c;可以使用这篇文章介绍的思路&#xff0c;使用声卡的数据线传输IQ路的基带数据。线路输入的好处&#xff1a; 不经过空气的媒介&#xff0c;波形的本…

江苏省汽车及零部件产业协作配套对接会在苏州举行

5月28日&#xff0c;江苏省汽车及零部件产业协作配套对接会暨“百场万企”大中小企业融通对接活动在苏州举办。本次活动以“深化整零协作&#xff0c;促进大中小企业融通发展”为主题&#xff0c;由江苏省工业和信息化厅、中国中检所属中国汽车工程研究院股份有限公司&#xff…

分享7个手机上堪称神器却鲜为人知的小众宝藏软件

分享7个手机上堪称神器却鲜为人知的小众宝藏软件&#xff0c;保证大家用过就舍不得卸载~ 1.志愿大师 马上就是高考季了&#xff0c;高考完的同学如果不知道该如何选专业&#xff0c;可以用这个软件来分析各个大学和专业设置等信息。 志愿大师是一款专为高考后学生设计的高效辅…

Others - 网友都是些人才,哈哈哈哈

感谢万能的网友们&#xff01; 原本枯燥的知识&#xff0c;在网友生动形象的表达下&#xff0c;也能简单易懂&#xff0c;哈哈哈哈

Prometheus+Altermanager实现钉钉告警

PrometheusAltermanager实现钉钉告警 Prometheus和Altermanager的安装这里就不赘述了&#xff0c;我之前的文章有写到 不记得的小伙伴可以去看看Prometheus和Altermanager的安装使用 直接开始上操作 下载钉钉并打开&#xff0c;先创建一个接收告警信息的钉钉群 添加一个自定…

【Nacos_bugs】java.lang.IllegalStateException: Failed to load ApplicationContext

报错原因 找不到配置文件。 Bug 排查 如果使用 Nacos 管理配置文件&#xff0c;需要检查本地 bootstrap.yml 配置是否出现问题&#xff1a; 检查点&#xff1a; 检查 Nacos 服务的地址有没有配置错误&#xff0c;如上图 ①&#xff0c;格式严格为 IP:端口号" 检查 D…

Ant Design Vue Pro流程分析记录

一、基本介绍 Ant Design Vue Pro提供了一套完整的解决方案&#xff0c;包括路由、状态管理、UI组件库、HTTP请求封装等&#xff0c;方便开发者快速搭建和维护企业级应用。 二、官网地址 Ant Design Pro of Vue 三、下载及安装 推荐使用Yarn 四、文件分布及说明 dist&#xf…

常见Rabbitmq面试题及答案总结

1、 什么是 rabbitmq 釆用AMQP高级消息队列协议的一种消息队列技术撮大的特点就是消费并不需要 确保提供方存在,实现了服务之间的高度解耦 2、 为什么要使rabbitmq &#xff08;1&#xff09; 在分布式系统下具备异步&#xff0c;削峰&#xff0c;负载均衡等一系列高级功能&…

企业百度百科如何修改

百度百科是一个可以让我们快速的了解一个企业情况的地方&#xff0c;同时也让我们的企业展示了什么&#xff0c;还有哪些是可以做的。 注册与登录 首先&#xff0c;你需要注册一个百度账号&#xff0c;并通过邮箱或手机进行验证。登录后&#xff0c;可以开始创建或编辑百度百科…