![](https://img-blog.csdnimg.cn/20210218210645134.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Qt入门
文章平均质量分 67
QT的入门知识,各种常用控件,常用类介绍
灬Sunnnnn
不积跬步,无以至千里.不积小流,无以成江海
展开
-
Qt QDialog简介
1、Qt中使用QDialog来实现对话框,QDialog继承自QWidget,对话框分为两种,一种是模态对话框、另一种是非模态对话框。即阻塞和非阻塞对话框,而模态对话框又有两种:应用程序级别的和窗口级别的,分别指完成对话框之前阻塞整个应用和阻塞关联窗口。exec()和 open()分别为应用程序级别和窗口级别的模态对话框,show()则为非模态对话框。QDialog::show():...原创 2019-09-21 13:40:25 · 28312 阅读 · 2 评论 -
QT .pro文件解析(秒懂)
1.pro文件的作用QT工程的pro文件,在创建工程时由QTCreater自动创建,我们可以往里面添加内容,增加库文件的声明,包含路径、预处理器定义,生成目录,输出中间目录等等设置。2.一个简单的示例QT += core gui chartsgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = qchartsTEMPLATE = appDEFINES += QT_DEPRECATED_WARNINGSSOU原创 2022-04-11 20:29:36 · 22163 阅读 · 3 评论 -
Qt QTableWidget详解
1.基础设置 //设置列数 ui->tableWidget->setColumnCount(4); //设置行数 ui->tableWidget->setRowCount(5); //去除选中虚线框 ui->tableWidget->setFocusPolicy(Qt::NoFocus); //表头标题用QStringList来表示 QStringList headerText; hea.原创 2020-11-23 18:55:48 · 24028 阅读 · 1 评论 -
Qt QTreeWidget 详解
一.基础设置1.添加顶层节点 //添加顶层节点 QTreeWidgetItem *topItem1 = new QTreeWidgetItem(ui->treeWidget); topItem1->setText(0,"百度"); ui->treeWidget->addTopLevelItem(topItem1);2.设置表头隐藏,展开所有项 //隐藏表头 ui->treeWidget->setHeade.原创 2020-11-23 15:21:31 · 37811 阅读 · 2 评论 -
Qt QListWidget详解
1.QListWidget和QListViewQListWidget是继承QListView,QListView是基于Model的,需要自己来建模(如建立QStringListModel,QSqlTableModel等),保存数据,这样就大大降低了数据冗余,提高了程序的效率,但是需要我们对数据建模有一定的了解,而QListWidget是一个升级版本的QListView,它已经为我们建立了一个数据存储模型QListWidgetItem,操作方便,直接调用addItem即可添加Item项。2....原创 2020-11-12 17:43:50 · 30328 阅读 · 4 评论 -
Qt QShortcut快捷键类详解
QShortcut是一个方便的工具类,用于在应用程序中创建快捷键。通过设置快捷键和关联的处理函数,可以实现快速执行某个操作的功能。// 创建一个快捷键,关联到MyWidget类的keyPressEvent()函数QKeySequence是一个字符串序列,用于表示一系列的键盘按键。通过使用QKeySequence,可以方便地生成快捷键,并将其与特定的处理函数关联起来。// 创建一个表示"Ctrl+K"的键盘序列QKeySequence是一个可选组合了Shift、Ctrl和Alt的键序列。原创 2024-05-06 17:41:08 · 831 阅读 · 0 评论 -
Qt QInputDialog详解
QInputDialog是一个对话框类,用于从用户那里获取一个单一的值。这个值可以是字符串、数字、或者一个列表中的选项。QInputDialog提供了一个方便的方式来快速创建一个输入对话框,无需自己从头开始构建。QInputDialog::TextInput - 允许用户输入文本。QInputDialog::IntInput - 允许用户输入整数。QInputDialog::DoubleInput - 允许用户输入浮点数。原创 2024-05-06 16:18:25 · 421 阅读 · 0 评论 -
Qt QImageWriter类介绍
用于写入图像文件的类。它提供了将QImage对象保存到不同图像格式文件的功能,包括但不限于 PNG、JPEG、BMP 等。可以将图像写入文件,也可以写入任何QIODevice,如QByteArray,这使得它非常灵活。格式支持: 支持多种图像格式,并且可以指定写入的图像格式。写入控制: 可以通过指定大小、质量、压缩比等选项来控制写入过程。错误处理: 提供了错误处理机制,可以捕获和处理写入过程中的错误。元数据支持: 可以设置图像的元数据,如分辨率、注释等信息。canWrite()原创 2024-05-03 12:13:01 · 739 阅读 · 0 评论 -
Qt QImageReader类介绍
是用于读取图像文件的类。它提供了读取不同图像格式的功能,包括但不限于 PNG、JPEG、BMP 等。可以用于文件,也可以用于任何QIODevice,如QByteArray,这使得它非常灵活。是一个专门用于从文件或设备读取图像数据的工具,提供了更多的读取控制和错误处理功能。格式支持:可以自动检测图像格式,也可以通过设置格式来指定读取特定类型的图像。读取控制: 可以通过指定大小、缩放选项和跳过图像的一部分来控制读取过程。错误处理: 提供了错误处理机制,可以捕获和处理读取过程中的错误。原创 2024-05-03 11:50:02 · 861 阅读 · 0 评论 -
Qt QThreadPool线程池
QThreadPool类管理一个QThread集合。QThreadPool管理和重新设计单个QThread对象,以帮助降低使用线程的程序中的线程创建成本。每个Qt应用程序都有一个全局QThreadPool对象,可以通过调用globalInstance来访问该对象。要使用其中一个QThreadPool线程,请子类化QRunnable并实现run虚拟函数。然后创建该类的一个对象,并将其传递给QThreadPool::start。线程复用:线程池中的线程可以重复使用,减少了线程创建和销毁的开销。原创 2024-04-29 21:40:16 · 817 阅读 · 0 评论 -
Qt QLineEdit详解
QLineEdit是一个单行文本编辑器。行编辑允许用户使用一组有用的编辑功能输入和编辑单行纯文本,包括撤消和重做、剪切和粘贴以及拖放。通过更改行编辑的echoMode,它也可以用作“只写”字段,用于密码等输入。文本的长度可以限制为maxLength,文本可以使用validator或inputMask进行任意约束,也可以同时使用这两种方法。在同一行编辑的validator和inputMask之间切换时,最好清除validator或输入mask,以防止出现未定义的行为。原创 2024-04-29 21:03:23 · 1272 阅读 · 0 评论 -
Qt QLCDNumber详解
它提供了一个显示数字的显示屏控件,效果类似于现实世界中的液晶显示屏。它可以显示任何大小的数字。它可以显示十进制、十六进制、八进制或二进制数字。可以用setMode更改基数,用setSmallDecimalPoint更改小数点。原创 2024-04-29 19:10:48 · 743 阅读 · 0 评论 -
Qt QStyle详解
QStyle类是 Qt 框架中用于控制应用程序界面元素外观的一个抽象基类。这个类提供了一种方式来定制窗口部件(widgets)的绘制和行为,可以通过改变主题或风格来更改应用程序的外观,而无需修改窗口部件本身的代码。Qt包含一组QStyle子类,这些子类模仿Qt支持的不同平台的样式(QWindowsStyle、QMacStyle等)。默认情况下,这些样式内置在Qt GUI模块中。样式也可以作为插件提供。Qt的内置widget使用QStyle来执行几乎所有的绘制,确保它们看起来与等效的本地小部件完全相同。原创 2024-04-15 22:49:20 · 1692 阅读 · 0 评论 -
Qt QProcess详解
QProcess提供了在 Qt 应用程序中启动外部程序的方法。通过QProcess,你可以启动一个进程,与它通信(发送输入和读取输出),检查它的状态,以及等待它完成。这个类在执行系统命令、运行其他程序或脚本时非常有用。原创 2024-04-11 18:47:03 · 2895 阅读 · 3 评论 -
Qt之QThread(深入理解)
简述为了让程序尽快响应用户操作,在开发应用程序时经常会使用到线程。对于耗时操作如果不使用线程,UI界面将会长时间处于停滞状态,这种情况是用户非常不愿意看到的,我们可以用线程来解决这个问题。前面,已经介绍了QThread常用的两种方式:Worker-Object 子类化QThread下面,我们来看看子类化QThread在日常中的应用。简述 子类化QThread 线程休眠...转载 2020-03-02 16:16:45 · 9632 阅读 · 2 评论 -
Qt d指针和p指针
首先,看了Xizhi Zhu 的这篇Qt之美(一):D指针/私有实现,对于很多批评不美的同路人,暂且不去评论,只是想支持一下Xizhi Zhu,在引用一下Jerry Sun的话,“C++需要宏定义就像需要设计模式一样。也许你不知道,宏是图灵完全(turing complete)的,至少LISP下是这样,C/C++需要宏,几乎所有重要的C/C++库都需要和依赖宏。这些都超过咱们的想象,宏能带给我们所谓语法糖(Syntax sugar)的方便。如果你不理解,并且不能熟练使用宏,内联函数和通用模板,那么你...转载 2020-06-23 11:39:41 · 1240 阅读 · 0 评论 -
Qt 自定义长条进度条(类似播放器进度条)
2.2绘制播放进度圆角矩形。一款自己做的播放器界面截图。2.1绘制底图圆角矩形。原创 2024-03-01 16:34:51 · 1043 阅读 · 0 评论 -
Qt QWidget、QDialog、QMainWindow的区别
QDialog和QMainWindow都是QWidget的子类,因此它们都继承了QWidget的特性和功能。综上所述,QWidget是最基础的窗口类,而QDialog和QMainWindow是QWidget的子类,分别用于创建对话框窗口和主窗口。QMainWindow类提供了一些用于创建主窗口的特殊功能,如设置中心部件、状态栏、工具栏等。QWidget类提供了一个空白窗口,可以通过继承该类来创建自定义的窗口类。QWidget类提供了基本的窗口属性和方法,如大小、位置、标题、图标等。方法设置对话框的模态性。原创 2023-10-30 15:03:23 · 2902 阅读 · 0 评论 -
Qt QFtp客户端(上传、下载文件)
实现FTP客户端有几种方式。QNetworkAccessManager支持大多数的网络协议,比如http、ftp等,这里主要讲解QNetworkAccessManager实现的FTP客户端。需要添加 Qt += network 模块。2.1QNetworkReplyQNetworkReply类包含使用QNetworkAccessManager发送的请求的数据和头部。与QNetworkRequest类似,它包含一个URL和标题(包括解析的和原始的形式),一些关于应答状态和应答本身内容的信息。常用信号:2.2Q原创 2022-07-07 22:21:42 · 2492 阅读 · 1 评论 -
Qt QSharedMemory共享内存
QSharedMemory提供多个线程和进程对共享内存段的访问。它还为单个线程或进程提供了一种锁定内存以进行独占访问的方法。记住,在读取或写入共享内存之前,使用lock()锁定共享内存,并记住在完成之后使用unlock()释放锁。当QSharedMemory的最后一个实例与共享内存段分离时,QSharedMemory会自动销毁共享内存段,并且不会保留对该段的引用。这里写了两个进程,一个读,一个写。 写进程源码:读进程源码:...原创 2022-07-07 20:32:14 · 1390 阅读 · 4 评论 -
Qt QPushButton详解
QAbstractButton 类是所有按钮控件类的基类,包含很多通用的按钮功能。QPushButton继承自QAbstractButton,它可以放置文字、图片等。它是最常用的小部件。按(点击)按钮来命令计算机执行某些操作或回答问题。典型的按钮有“确定”、“应用”、“取消”、“关闭”、“是”、“否”和“帮助”。QPushButton 类提供了 3 个构造函数,分别是:parent 参数用于指定父窗口;text 参数用于设置按钮上要显示的文字;icon 参数用于设置按钮上要显示的图标。其他常用方法:常原创 2022-07-04 22:09:30 · 5072 阅读 · 1 评论 -
Qt QScrollArea
QScrollArea类提供了滚动视图。滚动区域用于显示框架内子部件的内容。如果小部件超过了框架的大小,视图可以提供滚动条,以便可以查看子小部件的整个区域。子部件必须用setWidget()指定。简单使用: 源码:...原创 2022-06-30 20:27:42 · 1095 阅读 · 0 评论 -
Qt QSplitter拆分器
QSplitter拆分器允许用户通过拖动子部件之间的边界来控制它们的大小。单个拆分器可以控制任意数量的小部件。QSplitter的典型用法是创建几个小部件,并使用insertWidget()或addWidget()添加它们。默认情况下,QSplitter会动态调整其子元素的大小。如果您希望QSplitter仅在调整大小操作结束时调整子元素的大小, 那么调用setOpaqueResize(false)。将子部件的各自大小设置为列表中给定的值。如果splitter是水平的,则这些值将以像素为单位设置每个小原创 2022-06-30 19:38:39 · 4789 阅读 · 1 评论 -
Qt QProgressBar详解
QProgressBar提供了一个水平或垂直的进度条,可以使用setMinimum()和setMaximum指定最小和最大步数。当前的步数是用setValue()设置的。进度条可以用reset()重绕到开头。p1设置如下,正常设置。p2设置如下,设置了文字对齐方式,进度条方向等。setFormat(),有如下几种方式%p% 也可以直接设置显示的值,如下图所示,显示小数。 p3设置如下,繁忙进度显示。只需设置最大值、最小值为0就行了。4.设置样式表这里简单设置一下样式表。效果如下原创 2022-06-29 23:15:17 · 8211 阅读 · 3 评论 -
Qt QTreeView 详解
一.常见接口使用1.设置表头隐藏,设置表头QStandardItemModel *model = new QStandardItemModel(this);//设置表头隐藏//ui->treeView->setHeaderHidden(true);//设置表头model->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");//设置model ui->tr原创 2022-03-21 20:20:37 · 32020 阅读 · 0 评论 -
Qt QTableView详解
一.常用接口1.设置model,添加model数据 model = new QStandardItemModel(this); model->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄"); QStandardItem *item00 = new QStandardItem("张三"); QStandardItem *item10 = new QStan原创 2022-03-21 21:00:41 · 9986 阅读 · 1 评论 -
Qt QTabWidget详解
1.常用api//添加int addTab(QWidget *page, const QString &label)//设置tab位置void setTabPosition(QTabWidget::TabPosition)//设置tab的形状void setTabShape(QTabWidget::TabShape s)2.例子这里简单的添加两个tab m_tabWidget = new QTabWidget(this); ui->h.原创 2020-11-25 11:27:53 · 8560 阅读 · 0 评论 -
Qt QListView详解
一.常用接口1.添加数据 QStringListModel *model; model = new QStringListModel(this); model->setStringList(QStringList()<<"语文"<<"数学"<<"英语"); ui->listView->setModel(model);2.使用自定义的widget这里使用QLineEdit来举例,可以使用自定义的w原创 2022-03-21 21:34:48 · 24402 阅读 · 1 评论 -
Qt设置QPushButton文字加图片
方法一: ui->pushButton->setIcon(QPixmap("D:/qtTest/untitled/clear.png")); ui->pushButton->setText("清理");方法二: ui->pushButton->setStyleSheet("qproperty-icon: url(D:/qtT...原创 2019-09-08 20:19:59 · 11708 阅读 · 3 评论 -
Qt常用样式表
1.常用属性background-color:transparent; //背景颜色font-family: Microsoft YaHei; //字体font-size: 24px; //字体大小color: #000000; //字体颜色border-image: url(); //背景图,一般不使用background-imageborde...原创 2019-09-08 17:55:17 · 1182 阅读 · 0 评论 -
Qt常用基础设置
//右键菜单无效setContextMenuPolicy(Qt::NoContextMenu);//设置窗口背景透明setAttribute(Qt::WA_TranslucentBackground);//设置外框隐藏setWindowFlag(Qt::FramelessWindowHint);//设置无焦点setFocusPolicy(Qt::NoFocus);//设置l...原创 2019-08-27 10:37:52 · 590 阅读 · 0 评论 -
Qt设置字符串太长,使用省略号显示
widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QList>namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Wid...原创 2019-09-01 17:51:13 · 4343 阅读 · 0 评论 -
QT 删除目录下所有子目录和文件
1.源码bool clearDir(QString path){ if (path.isEmpty()) { return false; } QDir dir(path); if (!dir.exists()) { return false; } dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); //设置过滤 QFileInf.原创 2020-11-16 18:39:21 · 1951 阅读 · 0 评论 -
Qt 设置只能输入英文和数字
头文件//.h文件#ifndef DIALOG_H#define DIALOG_H#include <QDialog>namespace Ui {class Dialog;}class Dialog : public QDialog{ Q_OBJECTpublic: explicit Dialog(QWidget *parent ...原创 2019-11-12 11:43:39 · 3336 阅读 · 0 评论 -
Qt QSS选择器简介
选择器 示例 说明 通用选择器 * 匹配所有部件 类型选择器 QPushButton 匹配QPushButton及其子类的实例 属性选择器 QPushButton[ flat = "false" ] 匹配所有flat属性为false的对象 类型选择器 .QPushButton 匹配QPushButton实例,不包含子类 ...原创 2019-11-05 22:25:41 · 1670 阅读 · 1 评论 -
Qt 信号槽及connect第五个参数简介
1.Qt::AutoConnection:信号的发送者与信号的接收者在同一线程,则默认使用Qt::DirectConnection;如果不在同一线程,则默认 使用Qt::QueuedConnection。2.Qt::DirectConnection:信号的发送者与信号的接收者在同一线程中执行,当发出信号后,会马上进入槽函数,看上去就像在信号 发送位置调用了槽函数,在多线程下会比较危险,容易...原创 2019-09-30 10:59:13 · 3525 阅读 · 0 评论 -
Qt QTableWidget一些基础设置
1.运行截图2.源码#include "dialog.h"#include "ui_dialog.h"const QString g_strStyle = "QHeaderView\{\ font-family: \"微软雅黑\";\ font-size: 20px;\ color: #303133;\ text-align: lef...原创 2020-01-20 11:43:49 · 943 阅读 · 0 评论 -
Qt QSettings读取ini文件
QSettings一般我们使用QSettings这个类大都用于操作ini配置文件.常用API:1.void setIniCodec(QTextCodec *codec) //设置编码格式2.void setValue(const QString &key, const QVariant &value) //设置key的值3.void value(const QString &key, const QVariant &defaultValue = QV..原创 2020-11-20 15:47:21 · 1818 阅读 · 0 评论 -
Qt清空水平(垂直)布局
//清空接口void clearLayout(){ QLayoutItem *pChild; while ((pChild = ui.layout->takeAt(0)) != 0) { //setParent为nullptr,防止删除之后界面不消失 if (pChild->widget()) { ...原创 2019-12-30 14:15:58 · 1686 阅读 · 2 评论 -
Qt 程序打包发布-windeployqt工具
将编译好的exe程序打包,能够放到别的电脑上运行,这里使用Qt的自带的工具进行程序打包。windeployqt工具。步骤1:编译release程序我使用qtcreator来编译的程序步骤2:拷贝生成的exe文件到单独的文件夹。拷贝到新目录下步骤3:打包我使用的编译器是mingw的编译器,所以可执行程序的使用的库也是mingw的库。以下是mingw目录下的windeployqt可执行程序。点击上方文件栏,输入cmd执行命令。打包好的目录如下。步骤4:执行程序程序打包完成后,双击程序可能会找不到库的情况,如下。原创 2022-06-28 20:29:45 · 821 阅读 · 1 评论