
Qt学习笔记
Qt学习笔记
秋忆夏伤
个人学习笔记。仅用作笔记使用,方便复习、查找知识点。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Qt学习笔记(三十六):多线程
一、线程的创建方法一:1、自定义一个类(MyThread) ,继承于 QThread;2、重写 QThread 的 run() 方法(run() 方法就是线程处理函数,将耗时的操作放在该方法中执行);3、调用线程对象的 start() 方法启动线程,执行线程处理函数;注意:不能直接调用 run() 方法;效果图:子线程类:mythread.h:#include &...原创 2020-04-29 21:49:49 · 1016 阅读 · 0 评论 -
Qt学习笔记(三十五):TCP 传输文件
传输文件效果图如下:客户端先连接服务器,然后服务器点击 “选择文件”,选择文件之后点击 “发送文件”,客户端用一个进度条显示接收数据的进度。服务器端代码:widget.h:#include <QWidget>#include <QTcpServer>#include <QTcpSocket>#include <QFile>#...原创 2020-04-23 16:16:07 · 655 阅读 · 0 评论 -
Qt学习笔记(三十四):UDP 通信
QUdpSocket 类提供 UDP 套接字。UDP(用户数据报协议)是一种轻量级、不可靠、面向数据报、无连接的协议。它可以在可靠性不重要的情况下使用。QUdpSocket 是 QAbstractSocket 的一个子类,它允许您发送和接收 UDP 数据报。使用此类的最常见方法是使用 bind() 绑定到地址和端口,然后调用 writeDatagram() 和 readDatagram()...原创 2020-04-23 16:10:05 · 4062 阅读 · 0 评论 -
Qt学习笔记(三十三):TCP 通信
一、Tcp 通信:QTcpSocket 类提供一个 TCP 套接字。TCP(传输控制协议)是一种可靠的、面向流的、面向连接的传输协议。它特别适合于数据的连续传输。QTcpSocket 是 QAbstractSocket 的一个方便的子类,它允许您建立一个 TCP 连接并传输数据流。注意:TCP 套接字不能在 QIODevice::Unbuffered 模式下打开。QTcp...原创 2020-04-23 16:03:22 · 1461 阅读 · 0 评论 -
Qt学习笔记(三十二):Qt 中的文件读写操作
一、文件系统:文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库,提供了跨平台的文件操作能力。Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力。下面是 I/O 设备的类图(Qt5): QIODevice:所有 I/O 设备类的父类,提供了字节块读写的通用操作以及基本接口; QFileDevice:Qt5新增加的类,提供了有关文件...原创 2020-04-23 15:58:24 · 2061 阅读 · 0 评论 -
Qt学习笔记(三十一):创建一个不规则窗口
不规则窗口,先看一下效果图:widget.h:#include <QWidget>namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(...原创 2020-04-23 15:46:24 · 400 阅读 · 0 评论 -
Qt学习笔记(三十):Qt 中的绘图
一、QPainter:绘图对象Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制。整个绘图系统基于 QPainter,QPainterDevice 和 QPaintEngine 三个类。QPainter 用来执行绘制的操作(相当于画家);QPaintDevice 是一个绘图设备,允许 QPainter 在其上面进行绘制,也就是 QPainter 工作的空间(相当于画...原创 2020-04-22 20:11:04 · 8266 阅读 · 4 评论 -
Qt学习笔记(二十九):Qt 事件
一、Qt 事件概述:事件(event)是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件在对用户做出相应时发出,如鼠标、键盘事件等;还有一些事件是由系统自动发出,如计时器事件。我们知道,Qt 程序需要在 main() 函数中创建一个 QApplication 对象,然后调用他的 exec() 函数,这个函数的...原创 2020-04-22 19:55:47 · 1115 阅读 · 2 评论 -
Qt学习笔记(二十八):自定义控件
一、自定义控件的创建:1、在项目中添加一个设计师界面类:创建好后,会自动生成一个 .h 文件、一个 .cpp 文件和一个 ui 界面文件,如下:2、在新添加 设计师界面类的 ui 界面上拖几个控件:在 ui 界面上拖一个 Widget 控件,然后在 Widget 控件里面拖一个 SpinBox 控件和一个 Slider 控件,如下所示:Widget 控件采用...原创 2020-04-22 19:41:06 · 894 阅读 · 0 评论 -
Qt学习笔记(二十七):QLabel 的常用方法
一、QLabel 的构造函数:1、QLabel(QWidget * parent = 0, Qt::WindowFlags f = 0):创建 QLabel 控件时,指定其父对象,并设置其窗口属性(有默认值,可以不用设置);2、QLabel(const QString & text, QWidget * parent = 0, Qt::WindowFlags f = 0):创建...原创 2020-04-07 17:29:35 · 10719 阅读 · 0 评论 -
Qt学习笔记(二十六):QSlider 的常用方法
一、QSlider 的构造函数:1、QSlider(QWidget * parent = 0):创建一个滑块,指定其父对象。默认垂直方向。2、QSlider(Qt::Orientation orientation, QWidget * parent = 0):创建指定方向的滑块 // 创建一个水平的滑块 QSlider *horizontalSlider = new...原创 2020-04-07 17:17:27 · 14368 阅读 · 1 评论 -
Qt学习笔记(二十五):QSpinBox 和 QDoubleSpinBox 的常用方法
1、设置 spinBox 显示数值的范围(默认范围是 0-99):方法一: ui->spinBox->setRange(20, 30);方法二: ui->spinBox->setMaximum(20); ui->spinBox->setMinimum(10);2、设置 spinBox 数值每次增加的步长: ...原创 2020-04-02 16:56:31 · 5592 阅读 · 0 评论 -
Qt学习笔记(二十四):QLineEdit 和 QTextEdit 的常用方法
在界面上拉一个 lineEdit 控件,和几个按钮:代码如下:#include "widget.h"#include "ui_widget.h"#include <QDebug>#include <QMessageBox>#include <QLineEdit>Widget::Widget(QWidget *parent) : ...原创 2020-04-01 19:21:05 · 6694 阅读 · 1 评论 -
Qt学习笔记(二十三):QComboBox 的常用方法
在界面上拉一个 comboBox 控件,和几个按钮:代码如下:#include "widget.h"#include "ui_widget.h"#include <QComboBox>#include <QDebug>#include <QMessageBox>#include <QMap>Widget::Widget(...原创 2020-04-01 19:18:06 · 4818 阅读 · 0 评论 -
Qt学习笔记(二十二):QTabWidget 的常用方法
在界面上拉一个 Tab Widget,和下面的四个按钮控件:tab 中的控件随便拖的;代码如下:#include "widget.h"#include "ui_widget.h"#include <QTabWidget>#include <QLabel>#include <QDebug>#include <QMessageBox&g...原创 2020-03-31 21:52:39 · 1714 阅读 · 1 评论 -
Qt学习笔记(二十一):QToolBox 的常用方法
在界面上拉一个 Tool Box 控件,和三个按钮控件:代码如下:#include "widget.h"#include "ui_widget.h"#include <QGroupBox>#include <QDebug>#include <QMessageBox>#include <QToolButton>#include...原创 2020-03-31 21:04:48 · 10351 阅读 · 2 评论 -
Qt学习笔记(二十):QTableWidget 的常用方法
在界面上拉一个 Table Widget 控件,和五个按钮控件:widget.cpp 文件如下:#include "widget.h"#include "ui_widget.h"#include <QVector>#include <QDebug>#include <QMessageBox>#include <QTableWidge...原创 2020-03-31 19:01:33 · 798 阅读 · 0 评论 -
Qt学习笔记(十九):QTreeWidget 的常用方法
在界面上拉一个 TreeWidget 控件和五个按钮控件:widget.cpp 文件如下:#include "widget.h"#include "ui_widget.h"#include <QDebug>#include <QTreeWidget>#include <QTreeWidgetItem>#include <QMess...原创 2020-03-31 18:59:08 · 1749 阅读 · 0 评论 -
Qt学习笔记(十八):QListWidget 的常用方法
向列表中添加数据:共有三种方式1、void QListWidget::addItem(const QString & label):直接向列表中添加文本信息; QListWidget *listWidget = new QListWidget(this); listWidget->addItem("床前明月光"); listWidget->a...原创 2020-03-30 17:13:48 · 3791 阅读 · 1 评论 -
Qt学习笔记(十七):QCheckBox 的常用方法
// QCheckBox 是多选按钮,当有多个 QCheckBox 控件存在时,可以选择多个; // 可以使用 QGroupBox 控件进行分组,该控件通常带有一个边框和一个标题栏,作为容器部件来使用; // 需要注意的是,QGroupBox 容器内部必须使用布局控件(QLayout)进行布局; // 创建分组对象 QGroupBox *...原创 2020-03-27 15:32:00 · 6552 阅读 · 0 评论 -
Qt学习笔记(十六):QRadioButton 的常用方法
// QRadioButton 是单选按钮,当有多个 QRadioButton 控件存在时,只能选中一个; // 一般在使用 QRadioButton 控件时,都需要给 QRadioButton 分组; // 使用 QGroupBox 控件进行分组,该控件通常带有一个边框和一个标题栏,作为容器部件来使用; // 需要注意的是,QGroupBox 容器内部必须使用布...原创 2020-03-27 15:03:12 · 10766 阅读 · 0 评论 -
Qt学习笔记(十五):QPushButton 按钮的常用方法
获取 和 设置 按钮上的文本信息: // 获取按钮上的文本信息 QString content = ui->pushButton->text(); qDebug() << content.toUtf8().data(); // QString 类型转 char* 类型,解决打印中文乱码问题 // 设置按钮上的文本信息 u...原创 2020-03-26 17:40:42 · 28444 阅读 · 4 评论 -
Qt学习笔记(十四):选择字体对话框
void Widget::on_pushButton_clicked(){ bool ok; // 打开字体对话框,返回一个表示字体的 QFont 对象; // 参数1:一个标志,当用户点击对话框上的 ok 时,该值为 true;如果用户点击了 cancel,则该值为 false; // 参数2:设置对话框显示时的初始字体; // 参数3:指定...原创 2020-03-25 17:17:07 · 1072 阅读 · 0 评论 -
Qt学习笔记(十三):选择颜色对话框
void Widget::on_pushButton_clicked(){ // 打开选择颜色对话框,返回一个表示颜色的 QColor 对象 // getColor() 所有的参数都可以省略; // 参数1:选择颜色对话框打开时的默认颜色; // 参数2:指定父对象; // 参数3:指定对话框的标题; // 参数4:指定对话框外观的一些参数; ...原创 2020-03-25 10:45:03 · 1881 阅读 · 1 评论 -
Qt学习笔记(十二):标准文件对话框
程序界面:程序代码:// 打开文件void MainWindow::on_btnOpen_clicked(){ // 打开文件对话框,返回所打开文件的绝对路径 // 参数1:指定父对象; // 参数2:对话框标题; // 参数3:对话框打开时的默认路径; // “.” 表示程序当前运行目录; // “C:\\...原创 2020-03-24 16:29:59 · 372 阅读 · 1 评论 -
Qt学习笔记(十一):消息对话框
QMessageBox 用于显示消息提示。我们一般会使用其提供的几个 static 函数:1、显示关于对话框: // 关于对话框:该对话框只有一个 OK 按钮 // 参数1:父对象; // 参数2:对话框标题; // 参数3:对话框内容; QMessageBox::about(this, "关于对话框", "服务暂停,请稍后再试!");结果:...原创 2020-03-24 14:59:11 · 628 阅读 · 0 评论 -
Qt学习笔记(十):模态对话框和非模态对话框
模态对话框:// 显示模态对话框:模态对话框显示的时候,不可以对其他窗口进行操作void MainWindow::on_btnExec_clicked(){ // 如果创建 QDialog 对象的时候没有指定其父对象,那么该对话框将会是一个顶层窗口, // 顶层窗口在任务栏会有自己的位置。 // 如果创建 QDialog 对象的时候指定了父对象,那么该对话框将作为...原创 2020-03-24 14:04:32 · 426 阅读 · 0 评论 -
Qt学习笔记(九):添加资源文件,并给菜单栏和工具栏添加图标
一、创建项目,并添加菜单栏和工具栏:首先,创建一个基类是 QMainWindow 的项目,前面8节创建的项目都没有勾选“创建界面”,后面的项目我们开始学习界面设计器,勾选“创建界面”:项目创建好以后,项目文件里除了 main.cpp、mainwindow.h、mainwindow.cpp 之外,还会自动生成一个 ui 界面文件,如下:双击 mainwindow.ui 文件,即进...原创 2020-03-18 16:15:42 · 1339 阅读 · 3 评论 -
Qt学习笔记(八):核心部件 和 浮动窗口
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ this->resize(400, 300); // 核心部件 QTextEdit *edit = new QTextEdit(this); // 创建一个文本编辑框对象 this->setCentralW...原创 2020-03-18 14:33:46 · 727 阅读 · 0 评论 -
Qt学习笔记(七):状态栏
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ this->resize(400, 300); // 创建状态栏对象(状态栏只能有一个) QStatusBar *stBar = this->statusBar(); // 创建一个 label 控件 ...原创 2020-03-18 14:17:50 · 484 阅读 · 0 评论 -
Qt学习笔记(六):工具栏
#include "mainwindow.h"#include <QToolBar>#include <QMenuBar>#include <QMenu>#include <QAction>#include <QDebug>MainWindow::MainWindow(QWidget *parent) : QMai...原创 2020-03-18 13:59:23 · 516 阅读 · 0 评论 -
Qt学习笔记(五):菜单栏
前面学习使用的 Qt 项目都是以 QWidget 为基类的,QWidget 是所有控件的基类,但是 QWidget 子类下不包含菜单栏、工具栏、以及状态栏等;所以后面创建的 Qt 项目都以 QMainWindow 为基类:...原创 2020-03-17 20:47:34 · 547 阅读 · 0 评论 -
Qt学习笔记(四):Qt 的内存回收机制
在 Qt 中,QObject 是顶层对象,当 Qt 程序关闭的时候,QObject 对象会被自动释放掉:我们知道,C++ 中指针对象在使用的时候,需要手动分配空间(new),否则会出现“段错误”;当指针对象不再使用的时候,需要手动释放空间(delete),否则会导致内存泄漏;但是在 Qt 中,只要我们创建的指针对象(new 出来的对象),指定其父对象直接或间接的继承于 QObjec...原创 2020-03-05 14:18:42 · 2129 阅读 · 3 评论 -
Qt学习笔记(三):lambda 表达式
一、Lambda 表达式本质就是匿名函数,是 C++11 增加的新特性,所以使用 lambda 表达式的时候,需要在 Qt 项目文件(.pro) 中添加 CONFIG += C++11:二、Lambda 表达式的语法格式为:[capture](params) mutable ->return-type{statement}1、[capture]:捕捉列表,作用是将外部变量传入...原创 2020-03-05 11:33:43 · 1990 阅读 · 2 评论 -
Qt学习笔记(二):信号和槽
一、创建一个基于 QWidget 的项目,不带有界面设计器:二、在主窗口下添加两个按钮对象,连接按钮发出的信号和槽函数:mywidget.h:#ifndef MYWIDGET_H#define MYWIDGET_H#include <QWidget>// 引入按钮头文件#include <QPushButton>class MyWidget...原创 2020-03-04 16:31:57 · 1286 阅读 · 2 评论 -
Qt学习笔记(一):创建第一个Qt项目
一、创建一个 Qt 项目:选择项目类型:指定项目名称和路径:选择项目编译器:创建类信息:创建好的项目为:Qt 工具左下角三个按钮功能:二、main.cpp 文件的解析:三、项目文件 01_HelloQt.pro 的解析:四、Qt5 的基本模块:...原创 2020-03-04 13:01:58 · 1177 阅读 · 2 评论