- 博客(14)
- 收藏
- 关注
原创 TCP/UDP---Qt
功能在widget工程里面实现准备工作在 .pro 文件里加上QT += networkTCP服务端#include <QTcpServer>#include <QTcpSocket>1、定义监听socket和接收消息socket QTcpServer* server; QTcpSocket* socket;2、在构造函数里进行初始化 server = new QTcpServer(); connect(server,&QTc
2022-03-02 16:19:19 2388
原创 TCP/UDP---C++
TCP服务端1、初始化套接字库2、创建监听套接字(socket())3、为监听套接字绑定(bind())IP和Port4、监听(listen())5、接收连接(accept())6、通信(send()、recv())7、关闭套接字(closesocket())#include <WinSock2.h>#pragma comment(lib,"ws2_32.lib")#include <iostream>using namespace std;#pragma
2022-03-01 11:07:05 2292
原创 多字节与宽字节互转
编码小知识下面这些概念不知道对不对,若有大佬发现说错的地方,欢迎指正ANSI编码:各国制订的自己文字的编码,比如中国大陆的 GBK 编码方式Unicode:一套全球统一的编码规范,共110多万个字符。存储方式由UTF-8、UTF-16、UTF-32这三种宽字节和多字节是微软中的概念。宽字节:指Unicode编码,用wchar_t定义变量,每个字符占两个字节。多字节:指ANSI编码,用char定义,一个字符占一个字节。unicode转多字节wchar_t* pwBuf;int nLen =
2022-03-01 09:48:01 591
原创 Qt---配置文件读写
1、添加头文件#include <QSettings>#include <QFileInfo>#include <QCoreApplication>2、初始化配置文件读写对象 QSettings *psetting = nullptr; //定义配置文件读写对象 //获取配置文件位置 QString qstrConfigPath = QCoreApplication::applicationDirPath()+"/confi
2022-02-26 17:15:31 394 1
原创 字符串转化
UNICODECString 转 stringCString cstrOri;string strDest;USES_CONVERSION;strDest = string(W2A(cstrOri));string 转 CStringstring strOri;CString cstrDest;cstrDest = CString(strOri.c_str());字符数组转字符串char szOri[20];string strDest;strDest = szOri;c
2022-02-26 16:57:02 95
原创 Qt---文件操作
打开文件选择对话框 //父窗口、对话框名称、默认路径、文件类型 //在选择文件的时候其他对话框不可操作 QString qstrFileName = QFileDialog::getOpenFileName(this,QString("打开文件"),QString("/root"),QString("Text files (*.txt *.c *.cpp *.java);;Images (*.jpg *.png *.bmp);;XML files (*.xml)")); if(!q
2022-02-26 16:02:45 148
原创 Qt---数据库操作
准备工作1、在.pro文件里加入QT += sql2、添加头文件#include <QSqlDatabase>#include <QSqlQuery>#include <QDebug>#include <QStringList>查看Qt支持的数据库驱动 qDebug()<<"Avaliablr drivers: "<<endl; //获取可用的数据库驱动 QStringList drivers
2022-02-26 14:05:04 637
原创 Qt---绘图
在头文件添加绘图事件protected: void paintEvent(QPaintEvent *event);在源文件进行实现#include <QPainter>#include <QGradient>void CPaintPrac::paintEvent(QPaintEvent *event){ QPainter painter(this); QBrush brush; //define a bru
2022-02-23 11:43:16 166
原创 Qt---将变量插入字符串、字符串拼接
将变量插入字符串int num1 = 2,num2 = 3;QString str = tr("There are %1 apples and %2 oranges on the desk .").arg(num1).arg(num2);或者进行字符串拼接QString str1 = "sunny";QString str2 = tr("It is %1 today .").arg(str1);
2022-02-23 11:10:21 2921
原创 Qt---随机数生成器
给随机数生成器一个种子 //使用0时0分0秒到现在所走过的秒数作为随机数生成器的种子 qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));生成随机数 // %10 获得0-9的随机数,同理 %100 获得0-99的随机数 int num = qrand()%10;...
2022-02-23 10:38:01 251
原创 指针使用小提示
定义指针 QTimer* m_pTimer;指针定义完之后最好在构造函数里先初始化 m_pTimer = NULL; 这样的话就可以用下面的语句判断指针是否进行过内存分配了if(!m_pTimer){ qDebug()<<"变量还未分配内存"<<endl;}为指针分配内存 m_pTimer = new QTimer();...
2022-02-23 10:32:29 530
原创 Qt---鼠标、键盘响应事件
1、鼠标响应事件鼠标响应事件有按下、移动和弹起三种事件,下面只展示按下事件,其他两种事件与其类似(1)在头文件添加函数声明protected: void mousePressEvent(QMouseEvent *event);(2)在源文件添加头文件并进行函数实现#include <QMouseEvent>void Widget::mousePressEvent(QMouseEvent *event){ //在单行输入框中显示鼠标按下的坐标位置 ui->l
2022-02-23 08:48:52 3370
原创 Qt---QTimer
1、多个定时器(1)在头文件里加入定时器事件函数和标识定时器ID的变量protected: void timerEvent(QTimerEvent *);private: int m_nTimer1; int m_nTimer2;(2)在源文件中添加函数的实现void CTimerPrac::timerEvent(QTimerEvent *event){ //使用ID可判断是哪个定时器触发的溢时操作 if (event->timerId() ==
2022-02-22 17:20:50 474
原创 Qt---QMessageBox
下面这些消息对话框的参数可以按自己的需求进行填写。比如参数1的 this 可以换成 NULL参2是对话框的名称,即左上角的文字参3是对话框显示的内容参4是对话框带的按钮类型,用 | 可以同时添加多个QMessageBox::question(this,"Help","This is a help box",QMessageBox::YesAll);QMessageBox::critical(this,"Error","This is a Error box",QMessag
2022-02-22 11:39:27 425
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人