
Qt基础
文章平均质量分 56
分享Qt基础开发技术,开发环境搭建,基本控件得使用,解决Qt开发时的各种疑难杂症
令狐掌门
C++程序员,出版过《C++零基础入门视频教程》、《Qt高级进阶视频教程》、《C++ Qt6 QtQuick/QML入门进阶视频教程》、《OBS源码分析与桌面录制视频教程》、《PyQt PySide6零基础入门与项目实战》。
展开
-
我的开源项目:C++ Qt高仿QQ影音视频播放器
C++ Qt高仿QQ影音视频播放器原创 2022-02-22 23:01:09 · 4740 阅读 · 1 评论 -
vs2022 qt开发环境配置
vs2022 qt vsaddin插件已经更新,可以下载安装,链接:https://download.qt.io/archive/vsaddin/2.8.1/vs2022 qt开发环境具体可以参考我的这篇文章:https://mingshiqiang.blog.youkuaiyun.com/article/details/108015209qt版本可以选择5.15之后或Qt6.其它配置基本和vs2019 qt一至....原创 2022-01-23 14:39:49 · 5560 阅读 · 0 评论 -
VS2019 Qt开发环境搭建与配置
Qt是很优秀的图形界面跨平台开发框架,开发语言可以用C++, 也可以用python, 建议使用C++。windows上Qt开发环境可以使用QtCreator, 也可以使用VS + Qt, VS开发调试功能强大,本篇介绍VS2019 + Qt5.14开发环境的配置, 其它版本的类似。 VS下载链接:https://visualstudio.microsoft.com/zh-hans/vs/ VS2019 C++主要安装模块: 不............原创 2020-08-15 01:07:19 · 148351 阅读 · 84 评论 -
C++ Qt QMainWindow实现无边框窗口自定义标题栏可拖拽移动拉伸改变窗口大小
QMainWindow相对于QWidget多了dockedwidget功能,跟多人可能更喜欢用QMainWindow做主窗口,如果不需要dockedwidget功能,QMainWindow与QWidget做主窗口基本无差别。这里使用的是DWM API实现窗口阴影和圆角,圆角是windows窗口的圆角,不需要手动设置圆角大小。(1)在CFramelessWindowBase类设置窗口标志,去掉窗口边框,设置最大最小显示效果。(3)重写nativeEvent实现无边框窗口。自带窗口阴影、圆角、可拉伸,拖拽。原创 2024-04-24 14:40:04 · 2022 阅读 · 0 评论 -
Qt move和setGeometry的区别
方法:这个方法用于同时设置小部件的位置和大小。会将小部件的左上角移动到坐标 (100, 100),并将其大小设置为宽度 200 和高度 150。都是用于管理窗口或小部件的位置的方法,通常在使用 Qt 编程时会用到。方法:这个方法用于设置小部件的左上角的坐标位置,它需要两个参数,即横坐标和纵坐标。运行这个示例,您将会看到一个窗口中包含了两个不同颜色的小部件,它们分别演示了。所以,如果您只需要改变小部件的位置而保持其大小不变,可以使用。方法会改变小部件的位置,但不会改变其大小。方法会改变小部件的位置和大小。原创 2023-10-19 09:58:32 · 2103 阅读 · 0 评论 -
C++ Qt QString类用法介绍
是 Qt 框架中的一个重要类,用于处理 Unicode 字符串。它提供了大量的功能,方便开发者处理、查询和操作字符串。这些是QString类中用于裁剪和截取字符串的一些常用方法。您可以根据需要选择适合您的情况的方法。建议查看 Qt 官方文档以获取更多详细的方法和描述。:去除字符串中多余的空格字符,并将连续的空格字符替换为一个空格。:根据指定的分隔符,截取字符串的一部分。:去除字符串开头和结尾的空格字符。:返回从指定位置开始的n个字符。:返回字符串的前n个字符。:返回字符串的后n个字符。原创 2023-10-17 15:38:22 · 510 阅读 · 0 评论 -
Qt安装时出现无法下载无法更新无法安装的bug
打开cmd, 添加镜像源启动qt安装程序,上面的命令是使用了清华源,其它系统可使用类似的命令进行安装Qt.原创 2023-06-22 23:14:09 · 823 阅读 · 0 评论 -
Qt无边框窗口,自定义标题栏,可拉伸,拖动,Qt5/6通用,windows, linux通用
gitee:https://gitee.com/linghuzhangmen/qtframeless截图Qt6.4可编译(1)自定义标题栏、可拖动、拉伸;(2)支持linux,windows;(3)客户区可自定义窗体, 实现各种布局;使用QtCreator打开pro文件即可,运行需要参考如下代码:欢迎提issiue.原创 2022-12-05 17:23:39 · 1111 阅读 · 2 评论 -
qss美化Qt界面
Qt提供了类似前端css的样式表qss(Qt样式表)来进行界面优化,可以实现代码界面分离,像MFC这种需要进行控件重载才能实现。qss的使用方法如下: (1)在Qt设计器中对控件右键----改变样式表,可以填写qss语法来修改样式,这样是对单独的控件进行设置。 (2)在界面空白处改变样式表,是全局设置。 例如下面的界面:经过q......原创 2020-03-05 18:07:33 · 6910 阅读 · 2 评论 -
Qt调用ffmpeg录制屏幕
Qt调用ffmpeg录制屏幕原创 2022-06-15 12:52:08 · 5632 阅读 · 1 评论 -
QMap的使用与源码简析
QMap的概念和数学中的函数类似,是一种映射对应关系: y = f(x) 一个x对应一个y, 但是一个y可能还有多个x对应。QMap<Key, Value> 也是这种关系,不能有重复的Key, 可以有重复的Value, 并且QMap中的元素是按照Key进行排序,如果有重复的Key, 那么对......原创 2020-03-09 20:46:12 · 3533 阅读 · 0 评论 -
QVector用法详细介绍
QVector类是动态数组的模板类,顺序容器,它将自己的每一个对象存储在连续的内存中,可以使用索引号来快速访问它们。使用前需要包含头文件 #include <QVector> 下面介绍QVector的基本用法,先看看它的一些方法:构造函数QVector() //无参的构造函数QVector(int size) //构造一个大小为size个 值......原创 2020-03-08 22:53:52 · 29432 阅读 · 1 评论 -
Qt开发的程序怎么在别的电脑上使用
用Qt开发的软件,放到别人的电脑上,需要一些相应的dll, 应用程序才能启动, 编译模式是Debug.需要相应的带d的dll, release模式需要不带d的dll. 寻找这些dll其实很简单,一个命令就解决了。 例如我的开发环境是VS2017 Qt5.12.4 我是用的64位开发环境,那么需要把 D:\Qt\Qt5.12.4\5.12.4\msvc2...原创 2018-04-13 14:44:32 · 7372 阅读 · 1 评论 -
Qt应用窗口截图代码演示
网上有很多屏幕录制软件,作为程序员自己写一个录屏软件其实也是可以的,本篇介绍Qt屏幕录制功能的实现。 QScreen类提供了很多与屏幕相关的API, 例如抓屏API:QPixmap grabWindow(WId window, int x = 0, int y = 0, int w = -1, int h = -1); 传入窗口Id, 位置,宽高,就可以进行屏幕抓取了。 新建一个GUI项目,下面就把抓取的屏幕在Qt界面上显示出来, .h文件#pragma once#includ原创 2021-05-13 18:05:50 · 3799 阅读 · 0 评论 -
Qt去掉对话框边框并且窗口可移动的实现
Qt开发时,有时需要对窗口进行定制,例如去掉边框,做异形窗口等,做法比较简单,添加几句代码即可。现在构造函数中添加://去掉边框this->setWindowFlags(Qt::FramelessWindowHint); 此时,虽然去掉了边框,但是窗口无法移动,需要重写鼠标的按下,移动事件,在头文件中添加如下代码:void mousePr...原创 2019-08-10 22:18:47 · 5672 阅读 · 1 评论 -
Qt sender()用法详解
sender()是QObject类的方法,声明如下:QObject *sender() const; Qt助手的解释如下: Returns a pointer to the object that sent the signal, if called in a slot activated by a signal;otherwise it retur...原创 2020-02-29 14:10:14 · 13967 阅读 · 1 评论 -
Qt获取文件详细信息:QFileInfo的用法
通过类QFileInfo可以获取文件信息,选择一个文件,即可分析出该文件的信息。 QFileInfo类有很多方法,例如: bool exists() const; static bool exists(const QString &file); void refresh(); QString filePath() c...原创 2020-03-27 17:11:08 · 5413 阅读 · 0 评论 -
Qt监控目录文件变化:QFileSystemWatcher用法
Qt提供了目录文件变动检测功能的类QFileSystemWatcher,使用该类要想添加头文件 #include <QFileSystemWatcher> 先看看他的源码: bool addPath(const QString &file); QStringList addPaths...原创 2020-03-27 17:25:11 · 3637 阅读 · 5 评论 -
deepin安装Qt与调试环境的配置
deepin系统Qt安装方法1. 先检查是否有g++环境,输入 g++ --version 如果显示 bash : g++:未找到命令, 说明没有g++环境,输入以下命令,安装 sudo apt-get install g++2. 下载Qt linux版,Qt所有版本的下载地址 http://down...原创 2019-10-26 17:59:47 · 2981 阅读 · 0 评论 -
Qt QLabel样式表总结
Qt QLabel qss总结转载 2022-03-20 17:48:55 · 9056 阅读 · 2 评论 -
vs2019 qt打开ui文件闪退的解决办法
vs2019 qt打开ui文件闪退的解决办法原创 2022-03-20 16:30:33 · 4845 阅读 · 2 评论 -
C++ qt实现打开关闭状态按钮
效果图:上述这种按钮,用QCheckBox可以实现,只要在选择与未选择的状态设置不同的图片即可:选择未选择实现代码#include "widget.h"#include "ui_widget.h"#include <QMessageBox>Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){ ui->setupUi(this); ui->原创 2022-03-14 21:24:50 · 5297 阅读 · 4 评论 -
QButtonGroup的使用
当有一组按钮时,可以共用一个槽函数,在该槽函数中在做处理,那么此时就需要用到QButtonGroup类了,例如有如下界面 可以把这四个按钮全部放到按钮组里,根据按钮的序号分别进行调用。1 QButtonGroup类常用方法简介(1)addButton,声明如下void QButtonGroup::addButton(QAbstractButton ...原创 2020-03-02 03:36:24 · 5683 阅读 · 2 评论 -
QMainWindow statusBar如何添加控件
在使用Qt开发客户端时,有时需要在底部状态栏显示一些信息,但是默认的statusBar并不能满足需求,此时,我们可以在statusBar上添加自定义控件,实现相应需求。可以去看看QStatusBar的声明,代码如下:class Q_WIDGETS_EXPORT QStatusBar: public QWidget{ Q_OBJECT Q_PROPERTY(bool sizeGripEnabled READ isSizeGripEnabled WRITE setSizeGripEnab原创 2022-02-25 22:39:02 · 3587 阅读 · 0 评论 -
Qt 串口通信软件开发教程
Qt5.7已经封装了关于串口操作的类QSerialPort,QSerialPortInfo等,不需要再使用第三方串口类。串口应用程序的开发,包括查找串口,打开串口,发送数据,读取数据等。完整程序源码,请点击【串口助手源码下载】。 先看看类QSerialPortInfo, Qt的解释如下: Provides information about existing serial p...原创 2018-06-19 15:09:55 · 3996 阅读 · 7 评论 -
Qt读excel获取exel数据
Qt提供了com对象操作的类QAxObject,可以通过该类读写execel数据,例如下图的excel:下面是Qt读excel并打印内容的代码:#include "widget.h"#include "ui_widget.h"#include <QAxObject>#include <QFileDialog>#include <QStandardPaths>#include <QDebug>Widget::Widget(QWidget *p转载 2022-01-23 19:27:09 · 2541 阅读 · 3 评论 -
VS2019 Qt win32项目如何添加x64编译方式
在创建VS2019 Qt项目时,一般需要选择是win32还是x64, 如下图如果选择了32位,会发现没有x64编译选项;选了x64, 就没有x86的编译选项。win32、x64只是程序位数的叫法,可以随便取名,下面介绍如何给vs2019 qt win32项目增加x64的编译方式,操作步骤如下:(1)(2)(3) 选择x64从此处复制设置也可设为空,我这里选择从x86复制。(4) 修改Qt版本再把Qt Installation改为64位的Qt需要注意的是,如果上一步的"从此处复制设置原创 2022-01-19 21:43:23 · 3633 阅读 · 0 评论 -
C++ Qt QColorDialog使用教程
Qt提供了颜色选择框,如下图:QColorDialog使用方法例如下面的代码,点击按钮弹出颜色选择框,选择颜色,改变QLabel的背景色#include "widget.h"#include "ui_widget.h"#include <QColorDialog>#include <QPalette>Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){原创 2022-01-15 17:12:29 · 1178 阅读 · 0 评论 -
Qt获取windows文档、下载、图片等目录路径
在客户端开发时,有时需要一些默认路径,例如打开文件,有些电脑不分区只有C盘,这时可以把初次打开的路径设为“文档”,文档、视频等默认路径都和电脑用户名相关,不好直接指定。Qt提供了QStandardPaths类可以直接获取这些路径.在QStandardPaths类有个枚举体StandardLocation,定义了上述的位置信息,如下所示:enum StandardLocation { DesktopLocation, //桌面 DocumentsLocation,原创 2022-01-05 22:41:25 · 2936 阅读 · 2 评论 -
C++ Qt获取windows任务栏的位置及高度
在客户端应用开发时,有时需要获取任务栏的高度及位置来变换窗口、控件或提示消息的位置,Qt提供了类QDesktopWidget来获取窗体相应的信息,例如下面的代码:#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDesktopWidget>#include <QDebug>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)原创 2021-12-28 22:31:57 · 3942 阅读 · 0 评论 -
C++ Qt QString转string乱码的处理方法
QString在转string时,如果有中文,会出现乱码,例如下面的代码#include <QCoreApplication>#include <QDebug>#include <string>#include <iostream>using namespace std;int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QString qstr原创 2021-12-16 21:55:53 · 5055 阅读 · 2 评论 -
C++ Qt显示OpenCV图片【致敬浅墨_毛星云】
用QLabel可以显示OpenCV的Mat图片,本demo用的是OpenCV4, Qt界面如下: 点击按钮加载图片并显示,代码如下:void OpenCVTest::on_btnLoadimg_clicked(){ QString filename = QFileDialog::getOpenFileName(this, tr("选择图像"), "", ...原创 2020-04-19 15:49:42 · 1244 阅读 · 0 评论 -
Qt设置按钮背景图片
用qss可以修改按钮的样式,但是一些复杂的图形用图片来做显示效果更好,下面给出Qt按钮添加图片的方法,直接用setIcon的方法,图片会被缩放,下面的方法正常显示//设置按钮图标,按钮的默认大小是 30*30,可以自己指定void setButtonImage(QPushButton *button, QString image){ QPixmap pixmap(im...原创 2020-01-01 02:32:34 · 25016 阅读 · 0 评论 -
Qt判断文件夹路径、文件是否存在不存在则创建
Qt判断文件夹/目录是否存在Qt判断文件夹/目录是否存在,可以使用QDir类的exists方法来判断,在使用时需要包含头文件#include ,例如下面的代码:#include <QCoreApplication>#include <QDir>#include <QDebug>////// \brief 判断文件夹是否存在,不存在则创建/// \param fullPath/// \return///bool DirExist(QString ful原创 2021-11-17 22:48:39 · 13061 阅读 · 0 评论 -
Qt获取时间秒数,毫秒数,当前时间
代码如下:#include <QCoreApplication>#include <QDateTime>#include <QDebug>#include <QTime> int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); //获取时间秒数 qint64 startSec = QDateTime::currentDateTime().toT原创 2021-07-20 21:27:22 · 16190 阅读 · 1 评论 -
一步解决QtCreator调试时出现 Unable to create a debugging engine
如果用QtCreator开发软件,调试环境没配置好会出现,在debug的时候会出现Unable to create a debugging engine,之前在windows平台使用解决方案很多,网上的答案也是一大堆。Linux下的答案比较少,像unbuntu, deepin这类系统,解决方法都一样。 windows下如果安装的是VS版Qt,重新安装Windows SDK,选择deb...原创 2019-10-29 17:07:18 · 17818 阅读 · 5 评论 -
VS Qt开发的软件给exe添加图标
新建一个.rc文件,随便取名字,例如“logo.rc”, 添加以下内容IDI_ICON1 ICON DISCARDABLE "./Resources/demo.ico" 我是把demo.ico文件放到了程序的Resources目录,所以这样写,把logo.rc放到程序目录,然后在VS中把rc,ico文件添加进来,在Resources Files上右键添加现有...原创 2019-12-28 18:11:55 · 1154 阅读 · 0 评论 -
VS2019 Qt 怎么添加Qt模块?
今晚在用Qt时突然发现VS2019的Qt Projects Settings界面变了,之前都是用VS2015, VS2017,这几个版本基本没区别,VS2019的qt-vsaddin-msvc2019-2.4.2.vsix把 Qt Projects Settings的界面集成到VS了,如下图: VS2019 Qt模块界面 以往点击Qt Proj...原创 2020-03-06 21:22:41 · 14346 阅读 · 6 评论 -
VS中Qt编译运行时出现LINK : fatal error LNK1158: cannot run ‘rc.exe‘
由于电脑中装了两个VS,例如我的电脑装VS2015和VS2019,Qt装到了VS2015,在编译时就会出现LINK1158的错误,解决办法如下: 我的电脑是win10-64, 需要将 中的rc.exe rcdll.dll复制到Qt对应的VS中,例如我的Qt是嵌入到了VS2015,则需要复制到以下安装目录: ...原创 2019-06-11 20:20:58 · 2399 阅读 · 0 评论 -
Qt可重入和线程安全机制
在本文中,主要讲述Reentrancy and Thread-Safety机制,中文意思是可重入和线程安全,以指示它们如何在多线程应用程序中使用。 对于线程安全的函数, 即使调用使用共享数据,也可以被多个线程同时调用,因为对共享数据的所有引用都是序列化的。 可重入函数也可以从多个线程同时调用,但只有在每次调用都使用自己的数据时才可以。 ...原创 2019-08-01 19:57:56 · 744 阅读 · 0 评论