当前位置: 首页 > news >正文

【软件】Ubuntu下QT的安装和使用

【软件】Ubuntu下QT的安装和使用

零、前言

QT是应用得比较广泛的程序框架,是因为其跨平台特性比较好,且用C/C++作为开发语言,性能也比较好,故本文介绍如何安装和使用QT,用的版本是QT 6.2.4,由于QT在Windows和Linux下的使用差别不大,故我使用Ubuntu系统来讲解。

壹、QT的下载

  1. QT在之前是可以使用离线包下载的,但是现在都是使用的在线安装包安装了,在在线安装程序中需要使用账号登录,故我们需要注册一个QT官网的账号:https://login.qt.io/register

QT账号注册

  1. 接下来是下载QT安装程序,我们可以在QT官网下载:https://download.qt.io/official_releases/online_installers/,也可以在镜像源下载:https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/online_installers/,由于某种原因,在官网下载比较慢,推荐在镜像源下载,根据自己的系统和处理器类型选择对应的文件下载即可,我的是Ubuntu系统,英特尔的x64处理器,所以我这边选择qt-unified-linux-x64-online.run(Windows系统,英特尔或AMD的x64处理器的可以选qt-unified-windows-x64-online.exe),如图:

QT在线安装程序下载

贰、QT的安装

一、运行安装程序

我们需要在运行时通过传参为在线安装程序设置镜像源地址,具体操作如下:

Windows

Windows需要在打开的文件夹的路径处把路径全删除,输入cmd,按回车打开cmd窗口,执行如下命令:

qt-unified-windows-x64-online.exe --mirror https://mirrors.tuna.tsinghua.edu.cn/qt

Windows Qt安装程序的运行

Linux

Linux需要按Ctrl+Alt+T,在打开的bash中使用cd命令切换到下载目录,再执行如下命令:

# 添加运行权限
chmod +x qt-unified-linux-x64-online.run
# 运行在线安装程序
./qt-unified-linux-x64-online.run --mirro

QT的启动

二、安装过程

整个安装过程中需要注意的点如下:

  1. 输入账号密码,登录QT账号。安装步骤1

  2. 同意使用开源QT的条款和条件。安装步骤2

  3. 提示“XCB”找不到,需要使用sudo apt install libxcb-cursor-dev libxcb-cursor0安装“XCB”,然后继续。安装步骤3

  4. debug信息,可以选择发送或不发送。安装步骤4

  5. 安装目录,大家可以自由选择,一般软件是放在根目录下opt文件夹中的,所以我创建了/opt/qt文件夹,并设置为安装目录。安装步骤5

  6. 勾选Archive,然后点击筛选按钮,在左边QT下勾选要安装的版本即可,这边我勾选安装6.2.4版本。安装步骤6

  7. 开始安装。安装步骤7

  8. 下载的东西挺多的,需要等挺久,我们耐心等待一下。安装步骤8

  9. 安装完成。安装步骤9

  10. QT编辑器主界面。主界面主界面这边有三个提示,第一个是提示WebAssembly开发件套没有配置,第二个是提示安卓开发件套没有配置,第三个是问你是否开启界面向导程序带你熟悉一下界面,WebAssembly和安卓根据自己需求配置,界面向导可有可无。

至此,我们的QT就已经安装完成!

叁、QT的使用

一、创建项目

  1. 打开QT,在QT的主界面打开“欢迎”选项卡,点击“创建项目”按钮,进入到项目创建引导程序。Qt主界面

  2. 在新项目引导中,我们第一步选择“Application (QT)”,然后选择“Qt Widgets Application”,这是Qt窗口程序,然后点击“选择”按钮以继续。选择项目模板

  3. 配置一下项目名称和创建路径,创建路径建议在家目录下创建个QtProject目录,以后Qt的项目都放这里,这样方便管理,配置好后点击“下一步”按钮。配置项目名和路径

  4. 构建系统可以选qmake或者cmake,qmake适合小项目,比较简单灵活,且兼容Qt之前的版本,而cmake比较适合大项目,相对来讲稳定很多,大家根据自己的需要选择合适的构建系统。这边因为是示例,比较简单,故我选择qmake,选好之后点击“下一步”。选择构建系统

二、构建套件

在选择构建套件时,我们若只写C/C++代码,就只选GCC就好,但是GCC如果没有在电脑上配置好,便会出现如下警告,在“Desktop Qt 6.2.4 GCC 64 bit”前会有黄色的感叹号图标,此时,我们需要先在电脑上配置好GCC。如果没有警告的,则说明配置完成,跳过此部分。GCC配置警告


  1. 打开bash终端,安装gcc和g++。
# 安装C语言编译器
sudo apt install gcc
# 安装C++编译器
sudo apt install g++
  1. 点击上面引导程序中构建套件选择页面里的“Desktop Qt 6.2.4 GCC 64 bit”后面的“管理”按钮,进入到首选项页面,在首选项中把C编译器和C++编译器选择为刚刚安装好的编译器,点击“确定”即可。配置编译器

  2. 回到引导程序,点“下一步”,“完成”即可。完成创建

三、编译错误

完成后我们点左下角的绿色运行按钮即可编译并启动程序,然后第一次可能会出现如下错误,提示:-1: error: cannot find -lGL: No such file or directory,是没有安装libGL库,接下来讲如何解决。cannot find -lGL


  1. 使用以下命令检查libGL库是否安装(若提示locate命令找不到,可以使用sudo apt install plocate安装此命令):
locate libGL | grep libGLU
  1. 若没出现/usr/lib/x86_64-linux-gnu/libGLU.so.1/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1,则需要安装libgl1-mesa-dev,命令如下:
sudo apt-get install libgl1-mesa-dev
  1. 再次点击左下角的绿色运行按钮如果还是报错,则需要创建一个软链接:
sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so
  1. 再次点击运行即可:运行结果

四、无法输入中文

建议使用系统自带ibus输入法框架, 不要安装其他输入法。

  • 安装中文语言
    在“设置setting”-“区域与语言Region&Language”-“管理已安装的语言Manage Install Languages”-“添加或删除语言
    Install/Remove Languages”中,安装中文简体。
  • 选择ibus框架
    在“设置setting”-“区域与语言Region&Language”-“管理已安装的语言Manage Install Languages”-“键盘输入法系统”中,
    选择ibus。
  • 应用
    点击“应用到整个系统”,然后关闭。
  • 安装ibus的pinyin
sudo apt install ibus-libpinyin
  • 在ibus首选项中添加中文输入法
    使用下面的命令打开ibus首选项,在ibus首选项中,点击“输入法”,添加“中文”-“智能拼音”,然后关闭。
ibus-setup
  • 重启电脑
reboot

肆、参考资料

  1. qt | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
  2. Qt | Tools for Each Stage of Software Development Lifecycle

相关文章:

【软件】Ubuntu下QT的安装和使用

【软件】Ubuntu下QT的安装和使用 零、前言 QT是应用得比较广泛的程序框架,是因为其跨平台特性比较好,且用C/C作为开发语言,性能也比较好,故本文介绍如何安装和使用QT,用的版本是QT 6.2.4,由于QT在Windows…...

在Spring Boot中具有多个实现的接口正确注入的六种方式

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 在Spring Boot中,当一个接口具有多个实现时,正确地将这些实现注入到需要使用它们的地方是一个常见的需求。以下是在Spring Boot中实现这一目标的六种方式: 1. 使用Autowir…...

登陆微软账户太慢了,如何解决

软账号登录慢解决办法: 打开“网络和Internet”选择“以太网”选择“更改适配器选项”选择现用网络,右键->属性选择“IPV4”右键属性更改DNS地址为以下两者4.2.2.14.2.2.2...

Vue3动态组件component不生效问题解决方法

问题: vue3循环渲染动态组件component不生效,页面空白 在vue3使用component动态组件展示组件时,组件就是不展示显示空白。在vue2中使用动态变量component展示组件都是没问题。试了很多方法 踩了很多坑,所以记录下: 登录…...

算力基础篇:从零开始了解算力

什么是算力 算力即计算能力(Computing Power),狭义上指对数字问题的运算能力,而广义上指对输入信息处理后实现结果输出的一种能力。虽然处理的内容不同,但处理过程的能力都可抽象为算力。比如人类大脑、手机以及各类服…...

Redis 万字入门教程

0. 前言 文章已经收录到 GitHub 个人博客项目,欢迎 Star: https://github.com/chenyl8848/chenyl8848.github.io或者访问网站,进行在线浏览: https://chenyl8848.github.io/1. NoSQL 1.1 NoSQL 介绍 NoSQL(Not Only SQL )&…...

LeetCode :LCR 173. 点名

​ ​ 🔥个人主页:guoguoqiang. 🔥专栏:leetcode刷题 ​ ​ LeetCode :LCR 173. 点名 这个题就是缺失的数字,我们可以通过三种方式来解决这个问题。 1.可以通过位异或的方式来找到这个数(相同的数异或为…...

Gin框架操作指南06:POST绑定(下)

官方文档地址(中文):https://gin-gonic.com/zh-cn/docs/ 注:没用过Gin的读者强烈建议先阅读第一节:Gin操作指南:开山篇。 本节继续演示POST绑定,包括将request-body绑定到不同的结构体中&#x…...

LLaMA、llama.cpp和Ollama区别

LLaMA:LLaMA是由Meta(Facebook的母公司)开源的大型语言模型,它提供了不同规模的模型,包括1B、3B、11B和90B等参数规模的版本。LLaMA模型支持多语言对话,并在多个基准数据集上进行了评估,展现出与…...

NDK开发

NDK介绍 app为什么会把代码放到so中 a) C语言历史悠久,有很多现成的代码可用 b) C代码执行效率比Java高 c) Java代码很容易被反编译,而且反编译以后的逻辑很清晰 为什么要学习NDK开发 在安卓的so开发中,其他基本与C/C开发一致&#xff…...

docker overlay 占用空间太大,迁移到 /data/

将 Docker 的 overlay 存储驱动迁移到 /data/ 目录下,可以通过以下步骤完成: 1. 停止 Docker 服务 首先,停止 Docker 服务以确保没有容器在运行,并且数据不会被写入到当前的存储位置。 sudo systemctl stop docker2. 备份现有数…...

Windows性能监控与调优:让电脑运行如飞

一、性能监控 1. 使用任务管理器深入监控 打开任务管理器 我们可以通过按下Ctrl Shift Esc快捷键来打开任务管理器。 或者右键点击任务栏空白处,选择“任务管理器”。 查看性能 在任务管理器中,点击“性能”标签页。 我们可以看到“概览”标签&#x…...

前端响应式布局

1.什么是响应式布局? 响应式布局是一种使网页在不同设备(如手机、平板和桌面)上均能良好显示的设计理念。 2.响应式布局的原理? 通过灵活的网格布局、CSS 媒体查询和弹性单位等技术,实现内容自适应屏幕尺寸变化。 3.响…...

力扣MySQL 1581

先把两张表连接,amount为null 的正是我们需要的,再按customer_id聚合 select Visits.visit_id,customer_id ,Transactions.visit_id ,transaction_id ,amount from Visits left join Transactions on Visits.visit_idTransactions.visit_id 正确代码&…...

就是这个样的粗爆,手搓一个计算器:科学计算器

作为程序员&#xff0c;没有合适的工具&#xff0c;就得手搓一个&#xff0c;PC端&#xff0c;移动端均可适用。废话不多说&#xff0c;直接上代码。 HTML: <div class"calculator"><div class"display-wrapper"><div class"display…...

wordpress使用popup弹窗插件的对比

您在寻找最好的 WordPress 弹出插件吗&#xff1f;大多数网站利用某种形状或形式的弹出窗口来将访问者指向他们希望他们去的地方。例如&#xff0c;这可能用于结帐、电子邮件订阅或用于生成潜在客户。 表现 弹出插件会减慢您的网站速度。当插件使用 WordPress 跟踪弹出窗口的…...

开源OpenStack

1.查询HCS基于OpenStack哪个版本开发 2.九大核心组件 OpenStack可以对接FC也可以对接KVM主机&#xff1b;&#xff08;OpenStack 对接华为FusionCompute&#xff0c;一个集群对应 openstack 一台计算主机&#xff09;-引申出nova compute 2.1nova nova两个核心组件nova contro…...

基于Spring Boot+vue技术的导游系统设计与实现

论文下载【免费】基于SpringBootvue技术的导游系统设计与实现资源-CSDN文库 摘 要 本研究背景主要聚焦于当前旅游业信息化、智能化的发展趋势。随着移动互联网的普及和人们出行方式的多样化&#xff0c;导游系统作为旅游服务的重要组成部分&#xff0c;亟需进行技术革新以提…...

软件测试 —— 灰度测试及测试流程!

软件测试中的灰度测试是一种结合了黑盒测试和白盒测试特点的测试方法&#xff0c;旨在通过逐步扩大测试范围来评估新系统或新功能在真实环境中的性能和稳定性。灰度测试是软件开发过程中的一个重要环节&#xff0c;它有助于在全面发布前发现并修复潜在问题&#xff0c;同时收集…...

中科星图GVE(案例)——AI实现光伏面板提取

目录 简介 函数 gve.Services.AI.solarExtraction(image) 代码 结果 知识星球 机器学习 简介 光伏面板提取是一种将光伏面板从图像或视频中准确地分割出来的任务&#xff0c;可以通过使用深度学习算法来实现。 以下是一种基于深度学习的光伏面板提取的实现步骤&#x…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...