QT的使用学习_学习qt-程序员宅基地

技术标签: 学习  qt  QT学习  开发语言  

一、QT的安装与环境配置

进入下面的网站进行QT的ide的下载:(下载5.12.9版本使用,可以复制链接到迅雷,下载的比比较快)

Index of /archive/qt/5.12

Linux下安装软件的指令:

1、apt-get指令的使用

        apt-get 命令是 Ubuntu 系统中的包管理工具,可以用来安装、卸载包,也可以用来升级包,还可以用来把系统升级到新的版本。本文介绍 apt-get 命令的基本用法,演示环境为 Ubuntu 18.04。

语法格式:
        apt-get [options] command

配置文件:
        早期 apt-get 默认的配置文件为 /etc/apt/apt.conf,但是当前的 Ubuntu 系统中默认没有这个文件。
        如果 /etc/apt/apt.conf 文件存在,apt-get 仍然会读取它。但现在的设计思路是把配置文件分隔后放置在 /etc/apt/apt.conf.d 目录下,这样更容易管理。

常用选项:

-h, --help              // 查看帮助文档
-v, --version           // 查看 apt-get 的版本
-y                      // 在需要确认的场景中回应 yes
-s, --dry-run           // 模拟执行并输出结果
-d, --download-only     // 把包下载到缓存中而不安装
--only-upgrade          // 更新当前版本的包而不是安装新的版本
--no-upgrade            // 在执行 install 命令时,不安装已安装包的更新
-q, --quiet             // 减少输出
--purge                 // 配合 remove 命令删除包的配置文件
--reinstall             // 重新安装已安装的包或其新版本

常用子命令:
update
update 命令用于重新同步包索引文件,/etc/apt/sources.list 文件中的配置指定了包索引文件的来源。更新了包索引文件后就可以得到可用的包的更新信息和新的包信息。这样我们本地就有了这样的信息:有哪些软件的哪些版本可以从什么地方(源)安装。
update 命令应该总是在安装或升级包之前执行。

install
install 命令用来安装或者升级包。每个包都有一个包名,而不是一个完全限定的文件名(例如,在 Debian 系统中,提供的参数是 apt-utils,而不是 apt-utils_1.6.1_amd64.deb)。被安装的包依赖的包也将被安装。配置文件 /etc/apt/sources.list 中包含了用于获取包的源(服务器)。install 命令还可以用来更新指定的包。

upgrade
upgrade 命令用于从 /etc/apt/sources.list 中列出的源安装系统上当前安装的所有包的最新版本。在任何情况下,当前安装的软件包都不会被删除,尚未安装的软件包也不会被检索和安装。如果当前安装的包的新版本不能在不更改另一个包的安装状态的情况下升级,则将保留当前版本。必须提前执行 update 命令以便 apt-get 知道已安装的包是否有新版本可用。
注意 update 与 upgrade 的区别:
update 是更新软件列表,upgrade 是更新软件。

dist-upgrade
除执行升级功能外,dist-upgrade 还智能地处理与新版本包的依赖关系的变化。apt-get 有一个 "智能" 的冲突解决系统,如果有必要,它将尝试升级最重要的包,以牺牲不那么重要的包为代价。因此,distr -upgrade 命令可能会删除一些包。因此在更新系统中的包时,建议按顺序执行下面的命令:
$ apt-get update
$ apt-get upgrade -y
$ apt-get dis-upgrade -y

remove
remove 与 install 类似,不同之处是删除包而不是安装包。注意,使用 remove 命令删除一个包会将其配置文件留在系统上。

purge
purge 命令与 remove 命令类似,purge 命令在删除包的同时也删除了包的配置文件。

autoremove
autoremove 命令用于删除自动安装的软件包,这些软件包当初是为了满足其他软件包对它的依赖关系而安装的,而现在已经不再需要了。

download
download 命令把指定包的二进制文件下载到当前目录中。注意,是类似 *.deb 这样的包文件。

clean
clean 命令清除在本地库中检索到的包。它从 /var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/ 目录删除除锁文件之外的所有内容。

autoclean
与 clean 命令类似,autoclean 命令清除检索到的包文件的本地存储库。不同之处在于,它只删除不能再下载的软件包文件,而且这些文件在很大程度上是无用的。这允许长时间维护缓存,而不至于大小失控。

source
source 命令下载包的源代码。默认会下载最新可用版本的源代码到当前目录中。

changelog
changelog 命令尝试下载并显示包的更新日志。

2、wget的使用

用来从指定的url下载文件,wget非常稳定,对带宽具有很强的适应性。

下载安装wget软件:

sudo apt-get install wget

首先可以在window或者Linux浏览器下找到下载的链接,如下所示:

复制链接之后,就可以在Linux明亮窗口执行下面的命令进行下载单个文件:(下载到当前文件夹)

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

 使用wget -O下载并以不同的文件名保存

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

wget还可以限定速度下载

wget -–limit-rate=500k https://download.qt.io/archive/qt/5.12/5.12.9/qt-opensource-linux-x64-5.12.9.run

断续下载

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

下载整个网站

wget -np -nH -R index https://***.org/path/

上述的https://***.org/path/是要下载的网址。下载完毕后,将会自动生成一个index.html的文件,打开文件就是需要下载的网址内容了。

  • -r : 遍历所有子目录
  • -np : 不到上一层子目录去
  • -nH : 不要将文件保存到主机名文件夹
  • -R index : 不下载 index.html 文件,会自动生成index文件

(1)Linux下QT的安装

这里我采用的在window下载好之后传入到Linux下的安装包;

刚传入Linux环境下的安装包是没有执行权限的,需要使用命令提升可执行权限:

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

 然后直接运行程序文件就可以了:(安装的时候如果不想注册子账号,就断开乌班图的网络)图下图所示:

 

 

 (2)QT的启动

可以使用界面打开,也可以使用指令打开,运行安装的软件中的启动的脚本程序:

/home/book/Qt5.12.9/Tools/QtCreator/bin/qtcreator.sh

(3)C++开发环境的安装

        主要就是C++编译环境的安装,第一条是安装“g++”编译指令,第二个是安装关于C++的一些其他的库,例如找到main函数进行执行。

sudo apt-get install gcc g++
sudo apt-get install lsb-core lib32stdc++6 // 安装其他库

        页面qt的编程中,需要默认链接到OpenGl(OpenGL是Open Graphics Library的缩写,是个定义了一个跨编程语言、跨平台的编程接口的标准,显卡通常有OpenGL的实现),所哟如果没有这个库,编译的时候就会产生报错,通过下面的指令可以安装OpenGl。

sudo apt-get install libglu1-mesa-dev

二、QT的使用

(1)代码管理

        首先介绍代码项目的管理,以及代码的文件。

项目文件的介绍:

/* 下面的一行代码表示使用了那些模块,将其添加进来,添加的方法可以参考qt官方的资料 */
QT       += core gui

/* 下面的代码是判断qt的版本,4以上的版本需要添加widgets模块 */
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

/* 协议标准的配置 */
CONFIG += c++11

/* 生成的目标文件的名字的设置 */
target = maintest

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
/* 宏定义 */
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    
# disables all the APIs deprecated before Qt 6.0.0

/* 与项目文件相对应,如果这里添加了项目代码,但是在自己右端的项目里面没有进行添加的话,就会报错 */
SOURCES += \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

/* 下面是路径环境变量的配置,一般都设为默认配置 */
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

 下面是qt官方的 模块资料:所有模块 |Qt 5.15

(2)QT的函数或者变量的简介

鼠标选中函数或者变量之后,点击“F1”按键,就可以弹出函数的介绍。

(3)QT的源码示例参考

 (4)QT控件的使用

这里以经典按钮为例,主要介绍按钮对象和整个页面对象之间的关系,以及函数的生成和控制。

1,QT的Application Output窗口的输出代码

        包含头文件:#include <QDebug>

        代码中使用:qDebug()  <<"需要打印的信息"<<endl;

2、控件的slot函数

        鼠标右击空间,然后点击转到槽,之后就会创建slot函数。

         按键实现的调用过程:按钮对象(Sender)作为发送者给页面对象(Receiver)发送信号(Signal),页面接收对象通过信号处理函数(Slot:函数)对信号进行处理。

3、测试

4、QT启动程序的意义

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_50299271/article/details/130452074

智能推荐

fiv.js实现 flv格式监控视频流拉码(前端)-程序员宅基地

文章浏览阅读633次。最近项目有个新需求,需要实时直播工厂监控,与后端沟通交流也查询资料确定了fiv方案,优点在于相较于flash插件系列方案更独立(何况flash都被众大浏览器抛弃了),相较于hls延迟更低。遇到解决的问题也蛮多的,比如cors跨域问题,视频空白问题,视频卡顿问题,欢迎交流。第二步 在自己的页面引入fiv.js。接下来就是在页面写代码 上完整代码。_fiv.js

Android 基于Zxing二维码扫描的光速实现_fastqrcodescannerview-程序员宅基地

文章浏览阅读1w次。Android 十分钟光速实现二维码扫描前言在项目中要使用到二维码的相关内容,我们第一时间想到的是使用大名鼎鼎的zxing或者ZBar开源框架:github-zxing官方库的地址 github-ZBar官方库的地址除了这两个有名的框架之外,还有@bingoogolapple大神的扫描库github-BGAQRCode库以及国外@dlazaro66大神的github-QRCodeReaderView_fastqrcodescannerview

影视站长必备资料合集_九草影视-程序员宅基地

文章浏览阅读4.8w次。苹果cms最新程序官方网盘:https://www.lanzous.com/u/magicblack推荐使用卧龙资源: http://wolongzy.net (速度快,稳定)共有资源30719+八戒资源站 http://zy.bajieziyuan.com (秒播)共有资源20308+麻花资源资源站http://www.mahuazy.ne..._九草影视

python语言属于什么语言,python属于什么类型语言-程序员宅基地

文章浏览阅读861次,点赞21次,收藏10次。而今以及未来的时代,将会是人工智能以及大数据的时代,在这样一个时代背景下,必然要顺应时代的发展与变化,未来新一代青少年,需要掌握人工智能此类高端技术,那么,在众多编程语言当中,最为擅长数据处理,最能够在"人工智能”方面发挥作用的,就是Python!2 通过大量招聘与应聘数据的记录(有多少招聘岗位的发布,某种类型岗位的平均薪酬是多少,每天固定时间收集并处理一次数据),通过一年数据的积累,能够得到某种岗位的发展趋势以及时间(月份)对工作的相关影响。大量的数据处理,是大数据以及人工智能技术的基础。

[附源码]PHP计算机毕业设计天津市杨柳青智慧景区信息系统(程序+LW)_php景区票系统源码-程序员宅基地

文章浏览阅读159次。附源码]PHP计算机毕业设计天津市杨柳青智慧景区信息系统(程序+LW)该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流项目运行环境配置:小皮PHPstudy。项目技术:php+ Vue等等组成,B/S模式 +Vscode管理+前后端分离等等。环境需要1.运行环境:最好是小皮phpstudy最新版,我们在这个版本上开发的。其他版本理论上也可以。2.开发环境:Vscode或HbuilderX都可以。推荐HbuilderX;3.mysql。_php景区票系统源码

SpringBoot基于微信小程序的电子书阅读管理系统的设计(小说、书城)_微信小程序 阅读管理项目-程序员宅基地

文章浏览阅读1.1k次,点赞3次,收藏21次。系统是帮助管理员方便对电子书阅读系统弄进行统一管理的功能系统,能有效提升管理效率,并且可以减少维护成本。本系统主要是分为后台和小程序端,后台是用来做数据管理和维护,小程序端主要进行的是图书的搜索、浏览以及个人用户信息的相关操作,主要功能包括了:登录、注册、小说搜索、今日推荐、广告轮播图、小说分类、小说查看、小说阅读、我的书架、关于我们、我的阅读、我的信息等功能。管理员主要实现了登录、统计分析、用户管理、广告管理、分类管理、小说管理、章节管理、评论管理、管理员管理等功能。_微信小程序 阅读管理项目

随便推点

sqlmap [CRITICAL] can‘t establish SSL connection_can't establish ssl connection-程序员宅基地

文章浏览阅读969次。因为网站是https的,需要ssl证书书,有的网站遇到这种情况就没法跑。有几种解决办法,我采用了如下办法解决。先加个 –-force-ssl参数,再加上bp(或者其他)的代理。sqlmap碰见了如下错误。bp可以看到测试记录。_can't establish ssl connection

微信小程序_sitemaplocation-程序员宅基地

文章浏览阅读257次。sitemapLocation:暴露至外部搜索的相关配置项。可滚动视图区域。一般是固定区域内,然后将图片、列表等超过尺寸的内容放进去,从而实现滚动。常用参数如下:比如:其中white-space属性用来处理元素中的空白,有几种选项:normal、nowrap、pre、pre-wrap、pre-line、break-spaces。一般scroll-view与white-space合用,此处选择nowrap表示不对超过一行的数据进行换行,如果选择normal则会换行,滚动失效。事件包括:点击tap、输入i_sitemaplocation

Python爬虫怎么学?面向招聘岗位职责学习,看看你的技术能拿多少薪资(3)-程序员宅基地

文章浏览阅读911次,点赞8次,收藏20次。Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

2021-11-14_在玩牌程序中,每一组牌用数字1 13代表。输入数字,显示相应的牌。其中2 10直-程序员宅基地

文章浏览阅读2.1k次。“21天好习惯”第二期—1经典例题:在玩牌程序中,每一组牌用数字1〜13代表。输入数字,显示相应的牌。其中2〜10直接显示数字,而数字1、11、12、13则分别用Ace、Jack、Queen、King来表示。解法:..._在玩牌程序中,每一组牌用数字1 13代表。输入数字,显示相应的牌。其中2 10直

VxWorks基本概念及常见问题及BSP 概念-程序员宅基地

文章浏览阅读5.2k次。VxWorks基本概念及常见问题 (Drew 在开发过程中对下面概念的理解) Bootrom和Boot image的区别,Boot image和VxWorks image的联系和区别bootrom 是指on-chip bootrom,在CPU芯片内部,内嵌有小的boot程序(bootloader),类似于PC机主板上的BIOS的存储区域。和boot image不是一回事。VxWorks文档中的bo_vxworks基本概念及常见问题

TypeScript & Flow的基本使用_@babel/preset-flow-程序员宅基地

文章浏览阅读484次。强类型:语言层面限制函数的实参类型必须与形参类型相同弱类型:语言层面不会限制实参的类型总结:强类型语言中不允许任意的隐式类型转换,而弱类型是允许的静态类型:一个变量声明时它的类型就是明确的,声明过后它的类型就不允许再修改动态类型:运行阶段才能够明确变量类型,而且变量的类型随时可以改变弱类型的问题 异常需要等到运行时才能发现 函数功能可能发生改变 对象索引器的错误用法强类型的优势 错误更早暴露 代码更智能,编码更准确 重构更牢靠 减少不必要的类型判.._@babel/preset-flow

推荐文章

热门文章

相关标签