QT
齐_天_大_圣
格物穷理
展开
-
QLineEdit使用EchoMode 回显几种方式
QLineEdit使用EchoMode 回显几种方式。原创 2023-02-24 00:20:33 · 677 阅读 · 0 评论 -
QUiLoader 动态加载.ui文件
动态显示ui界面原创 2023-02-22 23:51:53 · 209 阅读 · 0 评论 -
Qt network
QNetworkAccessManager类允许应用程序发送网络请求并接收响应QNetworkRequest类保存要用QNetworkAccessManager发送的请求QNetworkReply类包含使用QNetworkAccessManager发送的请求后响应的数据。#include "widget.h"#include "ui_widget.h"#include <QNetworkRequest>Widget::Widget(QWidget *parent) : QW原创 2021-03-14 22:49:07 · 334 阅读 · 0 评论 -
Qt 网络编程
Qt Network 中的 C++ 类列表:要包含模块类的定义,请使用以下指令:# include < QtNetwork >要链接到模块上,请在你的.pro文件中添加这一行:QT += network项目Value链接QAbstractNetworkCache缓存实现的接口QAbstractSocket所有套接字类型通用的基本功能QAuthenticator认证对象QDnsDomainNameRecord存储域名记录信息原创 2021-03-13 23:23:53 · 856 阅读 · 0 评论 -
QTextStream与QDataStream的区别
QTextStream类为读写文本提供了一个方便的接口。 { QFile file("test.txt"); if (file.open(QFile::WriteOnly)) { QTextStream out(&file); out << "hello world"; file.flush(); file.close(); }原创 2021-03-13 00:11:08 · 376 阅读 · 0 评论 -
Qt 信号槽连接的几种方式
1、标准写法 connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(onBtnClicked()));2、地址函数指针写法在编译期获得类型检查 connect(ui->pushButton,&QPushButton::clicked,this,&Widget::onBtnClicked);3、lambda表达式写法 connect(ui->pushButton,&QPushButton原创 2021-03-11 22:31:08 · 462 阅读 · 0 评论 -
Qt 日志文件
简述Qt 打印信息等级类型描述qDebug调试信息qInfo一般信息qWarning警告信息qCritical危险信息qFatal致命信息自定义日志输出信息:QtMessageHandler qInstallMessageHandler(QtMessageHandler handler)注意:qInstallMsgHandler(QtMsgHandler handler)已经不建议使用如果想在Release 状态下不打印调试信息,可以再原创 2021-03-11 15:22:57 · 225 阅读 · 0 评论 -
qt Q_ASSERT
简述Q_ASSERT 可以做一些特殊值,或者关键点的检查。注意:如果判断为false,会打印debug信息,并且程序停止后续操作。在.pro文件中加入QT_NO_DEBUG可以停止Q_ASSERT检查DEFINES += QT_NO_DEBUGQ_ASSERTvoid Q_ASSERT(test)int divide(int a, int b) { Q_ASSERT(b != 0); return a / b; }如果b等于0打印:ASSERT: “b !=原创 2021-03-11 12:15:52 · 416 阅读 · 0 评论 -
Qt 注册自定义类型
注册自定义类型信号和槽在不同线程中传自定义参数时,需要注册。否则就会报错:QObject::connect: Cannot queue arguments of type ‘QVector’(Make sure ‘QVector’ is registered using qRegisterMetaType().)注册格式:qRegisterMetaType<MyClass>("MyClass");例如:#include "widget.h"#include <QAppli原创 2021-03-10 11:56:32 · 1157 阅读 · 0 评论 -
QT信号槽
信号槽信号槽第五个参数,enum Qt::ConnectionType类型描述Qt::AutoConnection信号和槽,如果是同一个线程使用Qt::DirectConnection,不同使用Qt::QueuedConnection。信号发出时确定。Qt::DirectConnection发出信号时立即调用插槽。槽在信号线程中执行。Qt::QueuedConnection当控制返回到接收方线程的事件循环时,将调用槽。槽在接收方的线程中执行。Qt::Block原创 2021-03-09 21:19:45 · 162 阅读 · 0 评论 -
Qt之findChild和findChildren
findChild函数说明T QObject::findChild(const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const参数1: QString对象名(objectName)参数2: Qt::FindChildOptionsConstantValueDescriptionQt::FindDirectChildrenOnly原创 2021-02-21 22:38:58 · 5446 阅读 · 1 评论 -
qt调用SSDP协议
SSDP简介简单服务发现协议(SSDP,Simple Service Discovery Protocol)是一种应用层协议,是构成通用即插即用(UPnP)技术的核心协议之一。简单服务发现协议提供了在局部网络里面发现设备的机制。控制点(也就是接受服务的客户端)可以通过使用简单服务发现协议,根据自己的需要查询在自己所在的局部网络里面提供特定服务的设备。设备(也就是提供服务的服务器端)也可以通过使用简单服务发现协议,向自己所在的局部网络里面的控制点宣告它的存在。代码#include "widget.h"原创 2021-02-02 17:26:13 · 937 阅读 · 2 评论 -
qt文本检索工具
概述根据关键字,检索文件夹下的文件内容代码#include "widget.h"#include "ui_widget.h"#include <QDir>#include <QtDebug>#include <QFileDialog>#include <QSettings>#include <QProcess>#include <QMessageBox>#include <QDesktopServices&原创 2020-05-25 12:13:00 · 760 阅读 · 0 评论 -
qt5.12 连接mariadb数据库
介绍mariadb是mysql的一个分支,代码编写上跟调用mysql一样。mariadb安装mariadb64下载: https://downloads.mariadb.org/.qt编译mysql驱动因为qt5.12不带mysql驱动,需要自己编译。下载64位的MySQL Community Server:https://dev.mysql.com/downloads/mysql/下载后解压即可,我的放在F:\mysql-8.0.20-winx64。用qt creator 打开mysql原创 2020-05-09 13:10:16 · 1812 阅读 · 0 评论 -
Qt进程间通信——QProcess
简介execute:阻塞运行start:异步运行delete process时,调用的exe结束进程代码调用进程#include "widget.h"#include "ui_widget.h"#include <QProcess>Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new U...原创 2020-04-28 14:22:05 · 431 阅读 · 0 评论 -
Qt进程间通信——共享内存
说明setkey:设置密钥,密钥是Qt应用程序用来标识共享内存段的标识符。create:创建共享内存空间lock/unlock:加锁解锁attach:将进程与共享内存绑定isAttached:判断是否绑定detach:解除绑定代码#include "widget.h"#include "ui_widget.h"#include <QBuffer>#include...原创 2020-04-27 17:04:45 · 370 阅读 · 0 评论 -
Qt进程间通信
简述进程间通信,就是在不同进程之间传播或交换信息。通信方式管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道(named pipe):有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。信号量(semophore):信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常...原创 2020-04-27 13:16:56 · 2318 阅读 · 0 评论 -
QT 打包程序
1、在桌面创建test文件夹2、将生成的.exe可执行程序拷到test文件夹中3、从开始菜单打开 Qt 命令行4、输入命令:cd /d C:\Users\sun\Desktop\test 。指定到exe目录下5、输入命令:windeployqt untitled37.exe(windeployqt + exe全名)。6、双击exe即可正常运行...原创 2020-01-03 14:24:46 · 175 阅读 · 0 评论 -
QChart画折现图
proQT += chartsmainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QChartView>#include <QLineSeries>#include <QTimer>#include <...原创 2019-10-29 11:36:26 · 270 阅读 · 0 评论 -
qt tableview 鼠标移动显示QToolTip
QAbstractItemView 模型视图框架,鼠标移动显示坐标数值#include "widget.h"#include "ui_widget.h"#include <QtDebug>#include "tabledelegate.h"#include <QAbstractItemModel>#include <QToolTip>Widget:...原创 2019-10-28 10:26:18 · 1501 阅读 · 1 评论 -
qt简单的TCP编程
服务端:#include "widget.h"#include "ui_widget.h"#include <QHostAddress>Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); m_server =...原创 2019-08-24 14:08:18 · 295 阅读 · 0 评论 -
qlist 对结构体排序
写法一 QList&lt;test&gt; s; test aa; test bb; test cc; aa.num = "14"; bb.num = "2"; cc.num = "3"; s.append(aa); s.append(bb); s.append(cc);原创 2018-05-31 16:51:19 · 5315 阅读 · 0 评论 -
Qt: QWidget、QMainWindow、QDialog和QFrame的区别
继承关系:在Qt中所有的类都有一个共同的基类QObject ,QWidget直接继承与QPaintDevice类,QDialog、QMainWindow、QFrame直接继承QWidget 类。QWidget:QWidget类是所有用户界面对象的基类。窗口部件(QWidget)是用户界面的一个基本单元:它从窗口系统接收鼠标,键盘和其他事件,并且在屏幕上绘制自己。每个窗口部件都是矩形的,并且它...转载 2019-09-30 16:27:38 · 2747 阅读 · 0 评论 -
获得qstring字符串的长度(字节长度和所占的像素宽度)
1.QString 用length()返回字符串的长度,即字节数, 在中英文字符都是以 Unicode 方式编码的,所以,无论中英文都算的长度为 1。想要取得英文长度为 1 中文长度为 2 的总长度,必须用toLocal8bit()。具体使用方法如下所示:QString s = “ab中文”;int length = s.length(); //length = 4;length = s....转载 2019-02-18 13:10:22 · 8496 阅读 · 0 评论 -
学习QT opengl 创建一个窗口
环境解释代码运行结果环境qt creator 5.6解释在pro文件中添加 QT += opengl LIBS += -lopengl32 -lglu32定义的类需继承 public QGLWidget 然后重新实现 initializeGL()、paintGL()和resizeGL()这个三个函数glClearColor(0.0,0.0,...原创 2018-06-08 09:28:10 · 538 阅读 · 0 评论 -
学习QT opengl 上色
环境解释代码运行结果环境qt creator 5.6解释glTranslatef(x, y, z)沿着 X,、Y 、 Z 轴移动。 x左右移动。左负,右正 y上下移动。上正,下负 z前后移动。前正,后负代码pro#-------------------------------------------------## Proje...原创 2018-06-14 20:21:19 · 274 阅读 · 0 评论 -
学习QT opengl 多边形
环境解释代码运行结果环境qt creator 5.6解释代码pro#-------------------------------------------------## Project created by QtCreator 2018-06-08T08:01:36##---------------------------------...原创 2018-06-13 23:05:47 · 541 阅读 · 0 评论 -
qt 连接mysql
mysql连接qt代码 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost");//同127.0.0.1 db.setDatabaseName("test"); db.setUserName("root"); db.setPassword(...原创 2018-05-23 00:08:49 · 827 阅读 · 0 评论 -
简单的qml抽奖demo
简单的qml抽奖demodemo下载地址: http://download.csdn.net/detail/sinat_33859977/9736337原创 2017-01-13 00:10:35 · 461 阅读 · 0 评论 -
QML无法显示图像问题
问题使用qt5.7在笔记本上和台式机上分别新建的Qt Quick项目。 在台式机上可以显示出界面上的文字,但在笔记本上就什么也没有应用程序输出: shader compilation failed: “Failed to create D3D shaders.\n” QOpenGLShader::link: Failed to create D3D shaders. Failed to原创 2017-01-12 00:17:56 · 4936 阅读 · 0 评论 -
QT 容器类
介绍Qt库提供了一套通用的基于模板的容器类,可以用这些类存储指定类型的项。比如,你需要一个大小可变的QString的数组,则使用QVector。这些容器类比STL(C++标准模板库)容器设计得更轻量、更安全并且更易于使用。如果对STL不熟悉,或者倾向于用“Qt的方式”,那么你可以使用这些类,而不去用STL的类。这些容器类是隐式共享的(可参考我的一篇博文)、可重入的,并且对速度、内存消耗等进行...转载 2019-03-02 22:51:17 · 410 阅读 · 0 评论 -
qt 实现托盘菜单
mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QSystemTrayIcon>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q...原创 2019-04-24 11:19:06 · 975 阅读 · 0 评论 -
循环中删除list元素
1、程序崩溃,mylist越界。#include "mainwindow.h"#include "ui_mainwindow.h"#include <QtDebug>#include <QListIterator>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(n...原创 2019-06-12 16:07:46 · 796 阅读 · 0 评论 -
qt 主窗口关闭时关闭子窗口
1、this指定主窗口为父类void MainWindow::on_pushButton_clicked(){ Dialog *aa = new Dialog(this); aa->show();}2、重写主窗口closeEvent事件mainwindow.hQVector<Dialog*> m_test;mainwindow.cppQVect...原创 2019-09-10 10:55:18 · 8360 阅读 · 2 评论 -
QT QTcpServer实现多个客户端连接
主要思路:1、重写QTcpServer的incomingConnection2、如果信号槽定义在线程的run()函数中,那么执行槽函数时并不是在当前线程中。所以采用在第一个线程中再创建一个线程去执行socket的槽函数3、注意所有new出的对象的释放及释放顺序。要不会造成内存泄漏或程序崩溃#include "dialog.h"#include "ui_dialog.h"#include...原创 2019-08-27 23:46:49 · 11158 阅读 · 1 评论 -
Cannot create children for a parent that is in a different thread.
在线程中new对象时添加this提示:Cannot create children for a parent that is in a different thread.去掉this就好了void SocketThread::run(){ qDebug() << "线程1:" << QThread::currentThread(); QTcpSock...原创 2019-08-27 20:39:43 · 407 阅读 · 0 评论 -
qt 简单UDP编程
dialog.h#ifndef DIALOG_H#define DIALOG_H#include <QDialog>#include <QUdpSocket>namespace Ui {class Dialog;}class Dialog : public QDialog{ Q_OBJECTpublic: explicit Dia...原创 2019-08-24 21:47:17 · 1216 阅读 · 0 评论 -
QMutexLocker测试
mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QThread>class ThreadA : public QThread{public: ThreadA () {} void run();};class Thre...原创 2019-08-14 16:56:42 · 327 阅读 · 0 评论 -
Qt Ftp操作
dialog.h#ifndef DIALOG_H#define DIALOG_H#include <QDialog>#include <QNetworkAccessManager>namespace Ui {class Dialog;}class Dialog : public QDialog{ Q_OBJECTpublic: ...原创 2019-08-14 14:07:14 · 877 阅读 · 0 评论 -
qt HTTP Basic Authentication认证
HTTP Basic Authentication认证方式:在http头中添加,Authorization属性。http head 格式:POST http://117.48.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAccept-Encoding: gzip,deflateContent-Type: application/jsonAuthor...原创 2019-08-02 17:16:18 · 2961 阅读 · 0 评论