- 博客(15)
- 资源 (28)
- 问答 (2)
- 收藏
- 关注
原创 QT Graphics View
1.概述采用QPainter绘图时需要在绘图设备paintEvent()事件里编写绘图的程序,实现整个绘图过程,这种方法如同使用windows的画图软件在绘图,绘制的是位图,这种方法适合于绘制复杂性不高的固定图形,不能实现图件的选择、编辑、拖放、修改等功能。Graphics View是一种基于图形项的模型/视图模式,并且每个图形元件是可选择、可拖放和修改的,由3个部分组成,场景、视图、图形项视图、场景、图形项的关系2.场景QGraphicsScene类提供绘图场景,场景是不可见的,是一
2021-03-29 21:59:38 5363
转载 QT 国际化
1.在工程中,新建一个资源文件,命名为translator资源文件在工程目录中的结构2. 修改pro在pro文件中添加TRANSLATIONS += resources/tr_zh.ts \ resources/tr_en.ts3.代码中所有需要翻译的字符串用tr("")包含 eg: tr(“中文”)4.如下图,点击更新翻译(lupdate)此时会在工程目录新建一个resources文件夹 ,并在其中生成了 tr_en.ts 和 tr_zh.t...
2021-03-24 22:23:27 553
原创 QT UDP通信(单播、广播、组播)
1.QUdpSocketUDP是轻量的、不可靠的、面向数据报、无连接的协议,它可以用于对可靠性要求不高的场合,与TCP通信不同,无需建立持久的socket连接。QUdpSocket用于实现UDP通信,与QTcpSocket主要区别是,QUdpSocket以数据报传输数据,而不是以连续的数据流。发送数据使用writeDatagram(),数据报的长度一般少于512字节,每个数据报包含发送者和接收者的IP地址和端口等信息。要进行UDP通信,首先需要bind函数绑定一个端口,用于接收传入的手机不能。当
2021-03-24 21:59:50 16765 10
原创 QT TCP客户端实现
1.实现QTcpSocket实例首先是通过connectToHost()尝试连接到服务器,需要指定服务器的IP地址和端口。connectToHost()是异步方式连接服务器,不会阻塞程序运行,连接后发射connected()信号。如果需要使用阻塞方式连接服务器,则使用waitForConnected()函数阻塞程序运行,直到连接成功或失败。与服务器建立连接后,就可以向缓冲区写数据或从接收缓冲区读取数据,实现数据的通信。当缓冲区有新数据进入时,会发射readyRead()信号,一般在此信号的槽函数
2021-03-22 21:40:27 5761 9
原创 QT TCP服务器实现
1.TCP通信概述tcp是一种用于数据传输的低级网络协议,它是可靠的、面向流、面向连接的传输协议,特别适合于连续数据传输。服务器端使用QTcpServer用于端口监听,建立服务器;QTcpSocket用于建立连接后使用套接字进行通信。TCP详解2.常用APIvoid close() 关闭服务器,停止网络监听bool listen() 在给定IP地址和端口上进行监听QTcpSocket *nextPendingConnection() 返回下一个等待接入的连接bool wait
2021-03-22 21:29:48 7834 19
原创 Qt QNetworkInterface详解
1.QNetworkInterface简介QNetworkInterface可以获得应用程序所在主机的所有网络接口,包括子网掩码和广播地址等。主要静态方法QList<QHostAddress> allAddresses():返回主机上所有Ip地址的列表。 QList<QNetworkInterface> allInterfaces():返回主机上所有接口的网络列表。成员方法QString hardwareAddress():返回该接口的低级硬件地址,以太网里就是M
2021-03-17 22:04:36 4855
原创 Qt QHostInfo详解
1.QHostInfo主要用来查询主机信息,包括主机名,ip地址,DNS域名等信息。以下常用静态方法QHostInfo::localHostName():获取本机的主机名。 QHostInfo::fromName(QString &name):通过主机名获取IP地址。 QHostInfo::lookupHost():可以通过一个主机名,以异步方式查找这个主机的IP地址。 QHostInfo::localDomainName():返回本机DNS域名。以下常用方法QString
2021-03-17 21:39:47 4049 4
原创 Qt 多线程同步之信号量
1.原理信号量是另一种限制对共享资源进行访问的线程同步机制,它与互斥量相似,但是有区别。一个互斥量只能被锁定一次,而信号量可以多次使用。信号量通常用来保护一定数量的相同的资源,如数据采集时的双缓冲区。QSemaphore常用方法acquire(int n)尝试获得n个资源。如果没有这么多资源,线程将阻塞直到有n个资源可用。 release(int n)释放n个资源,如果信号量的资源已全部可用之后再release(),就可以创建更多的资源,增加可用资源的个数。 int available()返
2021-03-17 21:00:20 2198
原创 Qt 多线程同步之条件变量
1.QWaitConditionQWaitCondition与QMutex结合,可以使一个线程在满足一定条件时通知其他多个线程,使它们及时作出响应,这样比只使用互斥量效率要高一些。常用APIwait(QMutex *lockedMutex, unsigned long time = ULONG_MAX):解锁互斥量lockedMutex,并阻塞等待唤醒条件,被唤醒后锁定lockedMutex并退出函数。 wakeAll():唤醒所有处于等待状态的线程,线程唤醒的顺序不确定,由操作系统的调度策略
2021-03-15 23:24:17 1139
原创 Qt 多线程同步之读写锁
1.QReadWriteLock使用互斥量时存在一个问题:每次只能有一个线程获得互斥量的权限。如果在一个程序中有多个线程读取某个变量,使用互斥量时也必须排队。而实际上若只是读取一个变量,是可以让多个线程同时访问的,这样互斥量就会降低程序的性能。lockForRead():以只读方式锁定资源,如果有其他线程以写入方式锁定,这个函数会阻塞。 lockForWrite():以写入方式锁定资源,如果本线程或其他线程以读或写模式锁定资源,这个函数会阻塞。 unlock():解锁。 tryLockForR
2021-03-15 22:26:48 2556
原创 Qt 多线程同步之互斥锁
生产者-消费者模型1.QMutexQMutex需要配对使用lock()和unlock()来实现代码段的保护#ifndef MYTHREAD_H#define MYTHREAD_H#include <QThread>#include <QQueue>#include <QMutex>#include <QDebug>static int data = 100;static QQueue<int> que;stat
2021-03-15 22:07:18 1585
原创 Qt QSqlQueryModel详解
1.功能概述QSqlQueryModel是QSqlTableModel的父类。QSqlQueryModel封装了执行SELECT语句从数据库查询数据的功能,但是QSqlQueryModel只能作为只读数据源使用,不可以编辑数据。QSqlTableModel详解2.常用APIvoid clear() //清除数据模型,释放所有获得的数据QSqlQuery query() //返回当前关联的QSqlQuery()对象void setQuery() //设置一个QSqlQuery对象...
2021-03-10 22:15:33 12060 7
原创 Qt QSqlTableModel详解
1.QSqlTableModel用来显示数据库中数据表的数据,实现对数据的编辑、插入、删除等操作。实现数据的排序和过滤2.常用APIvoid setTable(const QString &tableName) //设置数据表名称void setFilter(const QString &filter) //设置记录过滤条件void setSort(int column,Qt::SortOrder order) //设置排序字段和排序规则,需调用select()才生...
2021-03-10 21:31:39 21907 11
原创 Qt 坐标变换
1.坐标变换常用接口void translate(qreal dx,qreal dy) 平移 void rotate(qreal angle) 旋转 void scale(qreal sx,qreal sy) 缩放 void save 保存painter当前的状态 void restore() 恢复上一次状态 void resetTransform() 复位所有的坐标变换 2.示例画五角星void Widget::paintEve
2021-03-08 20:42:27 1623 1
原创 Qt QPainter绘图
1.QPainter绘图系统QPainter用来进行绘图操作的类。 QPaintDevice是一个可以使用QPainter进行绘图的抽象二维界面。 QPaintEngine给QPainter提供在不同设备上绘图的接口,QPaintEngine类由QPainter和QPaintDevice内部使用,应用程序一般无需使用QPaintEngine。 绘图设备包括QWidget、QPixmap、QImage等。2.paintEvent世界和绘图区QWidget类及其子类是最常用的绘图设备,从QWid
2021-03-01 22:10:51 7240
Sherk.zip
2024-05-10
socket_chatroom.zip
2024-05-10
WeatherClient.zip
2024-05-10
socks5-server-c.zip
2024-05-10
RingBuffer.zip
2024-05-10
OpenNNA2.0.zip
2024-05-10
kv-store-main.zip
2024-05-10
Huffman-compress.zip
2024-05-10
discjvm.zip
2024-05-10
go-cqhttp-C.zip
2024-05-10
conf-c.zip
2024-05-10
crc-lib-c.zip
2024-05-10
epoll-sever.zip
2024-05-10
ExPeriphDriver.zip
2024-05-10
Qt+ffmpeg+opengl实现一款精美的播放器,Qt+ffmpeg+opengl实现一款精美的播放器
2024-04-29
vlc+Qt实现的一款精美视频播放器源码,vlc+Qt实现的一款精美视频播放器源码
2024-04-29
VLC+Qt demoVLC+Qt demo
2024-04-24
STM32_OmniBot_ObstacleAvoidance.zip
2024-05-10
RedBlackTree-master.zip
2024-05-10
Streaming_media_broadcasting_system_based_on_IPv4-main.zip
2024-05-10
smartHome-main.zip
2024-05-10
Galaxy-invasion-master.zip
2024-05-10
train-ticketorder-system-master.zip
2024-05-10
playfj-master.zip
2024-05-10
GreedySnake-main.zip
2024-05-10
epump-master.zip
2024-05-10
C_ChineseChess-master.zip
2024-05-10
2048--master.zip
2024-05-10
Dynamic_threadpool_c-main.zip
2024-05-10
zdcclient.zip
2024-05-10
SMX_Test.zip
2024-05-10
Tetris.zip
2024-05-10
Spider.zip
2024-05-10
Study_Garbage_Collector.zip
2024-05-10
http_server.zip
2024-05-10
Electronic-clock.zip
2024-05-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人