qstring

Qt 标准对话框

旧街凉风 提交于 2020-02-09 01:49:00
Qt提供了一些可以复用的对话框类型,这些对话框类型全部继承与QDialo类。    Qt中标准对话框遵循相同的使用方法:   //定义对话框对象   DialogType dlg(this);   //设置对话框属性   dlg.setPrpertyXXX(value);   if(dlg.exec() == DialogType::value)   {   //获取对话框数据   Type V = dlg.getDialogValue();   //处理对话框数据   //....   } Qt消息对话框:QMessageBox   QMessageBox 中的实用函数。    void about ( QWidget * parent, const QString & title, const QString & text ) void aboutQt ( QWidget * parent, const QString & title = QString() ) StandardButton critical ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton )

QT XML相关QXmlStreamReader,QXmlStreamWriter 读写操作

孤街醉人 提交于 2020-02-05 01:02:08
一、基本介绍 1 老版的Qt提供了两种访问XML文件的方式:DOM和SAX。 2 DOM 方式:将 XML 文档转换为树形结构存储到内存中,再进行读取,消耗的内存比较多。此外,由于文档都已经存储到内存,所以需要频繁实现修改等操作时,使用起来比较方便。 3 SAX 方式:相比于 DOM,SAX 是一种速度更快,更有效的方法,它逐行扫描文档,一边扫描一边解析(由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中,这对于大型文档的解析是个巨大优势)。而且相比于 DOM,SAX 可以在解析文档的任意时刻停止解析。但操作复杂,很难修改 XML 数据。 自QT4.3版本开始,QT提供了两个新类来读写XML:QXmlStreamReader 和 QXmlStreamWriter。读写方式可类比于SAX。目前QT已经停止对DOM和SAX的维护与更新。 4 QXmlStreamWriter 类提供了一个使用简单的流 API,用于写入 XML,与之相对应的是 QXmlStreamReader(读取 XML)。 5 QXmlStreamReader类支持对XML读取的操作。对于 XML 的内容,通常情况下,我们只关心 XML 元素的解析。这时,可以通过 QXmlStreamReader 中的便利函数 readNextStartElement() 来实现。 实例 1案例介绍

Qt浅谈之总结(整理)

拈花ヽ惹草 提交于 2020-02-04 17:06:02
https://www.cnblogs.com/lsgxeva/p/7811275.html 一、简介 QT的一些知识点总结,方便以后查阅。 二、详解 1、获取屏幕的工作区的大小 { //获取屏幕分辨率 qDebug()<< "screen width:"<<QApplication::desktop()->width(); qDebug()<< "screen height:"<<QApplication::desktop()->height(); //下面方法也可以 qDebug()<< "screen width:"<<qApp->desktop()->width(); qDebug()<< "screen height:"<<qApp->desktop()->height(); //获取客户使用区大小 qDebug()<< "screen avaliabe width:"<<QApplication::desktop()->availableGeometry().width(); qDebug()<< "screen avaliabe heigth:"<<QApplication::desktop()->availableGeometry().height(); //获取应用程序矩形大小 qDebug()<< "application avaliabe width:"<

Qt 编码问题QTextCodec

醉酒当歌 提交于 2020-02-03 16:31:31
一般在Window开发环境里,是GBK编码,在Linux开发环境里,是utf-8编码,关于编码的定义, 我就不这里多说了,网上有一大堆资料可以查看。 qt 对默认的是 unicode 编码, 在Window开发环境里,比较通用的写法是: 在main.cpp文件中加入: 1. QTextCodec *gbk = QTextCodec::codecForName("gb18030"); 2. QTextCodec::setCodecForTr(gbk); 3. QTextCodec::setCodecForLocale(gbk); 4. QTextCodec::setCodecForCStrings(gbk); 第一行:定义gb18030编码格式 第二行: 这个函数的作用是设置传给 tr函数时的默认字符串编码 ,GUI设计中最常用的一种。 第三行:这个函数主要用于设置和对本地文件系统读写时候的默认编码格式。比如通过 流读取一个文件内容时的编码格式 。或者通过 qDebug()输出打印信息时的编码 。 第四行:这个函数主要是用在 字符常量或者QByteArray构造QString对象时使用的一种编码方式 。 同理,在Linux开发环境里, 通用的写法是: QTextCodec *utg8 = QTextCodec::codecForName("utf-8"); QTextCodec:

Qt知识总结

做~自己de王妃 提交于 2020-02-02 02:27:56
信号与槽 ① on_pushButton_clicked() 任何一个对象含有信号A,函数:on_obj_a()自动产生信号连接,原理: Qt Meta Object Compiler读取*.h文件 生成 moc_*.cpp文件 ui_ivtform.ui文件调用QMetaObject::connectSlotsByName(IVTForm); ② connect connect(LogManager::instance(),SIGNAL(newMsgPrint(const QString&)), this,SLOT(On_key_print_callback(const QString&)),Qt::QueuedConnection); 对于第五个参数: 来源: CSDN 作者: 王大球球 链接: https://blog.csdn.net/yuanwen6947/article/details/104135405

Qt学习笔记之 字符串类型小结

一世执手 提交于 2020-02-02 01:12:25
1. Qt常用字符串类型 1.1 QString QString是Unicode编码的字符串,存储一系列16位的QChar,每一个QChar对应一个Unicode 4.0编码的字符,详见《 Qt学习笔记之QString 》。 1.2 QByteArray QByteArray是个字节数组,可以存储原始字节(包括一系列'\0')和传统的8位'\0'结尾的字符串,每一个字节存储为char类型的数据; 虽然QString用得更普遍和方便,但当需要存储原始的二进制数据或者内存保护要求严格时,用QByteArray比用QString更合适,详见《 Qt学习笔记之QByteArry 》。 1.3 QChar QChar存储一个16位(2个字节)的Unicode字符,数据的存储类型为ushort(unsigned short),详见《 Qt学习笔记之QChar 》。 1.4 QLatin1Char QLatin1Char是个结构体,存储一个8位ASCII/Latin-1编码的字符,数据的存储类型为char,详见《 Qt学习笔记之QLatin1Char 》。 2. Qt字符串类型见转换 2.1 QByteArray、char *与QString互转 QByteArray与QString互转极为简单,二者从本质上类似,都是连续存储,区别是前者可以存无法显示的字符,后者只存可显示的字符

Day04 (四)_TCP文件传输设计

一曲冷凌霜 提交于 2020-02-01 23:48:04
8.3 TCP文件传输 8.3.1 TCP服务器端设计 当服务器端发送文件给客户端时,要先选中一个文件,读取这个文件的大小与名称,以便于客户端可以提前准备好一个同名同大小的储存区域。 在客户端接收到文件的名字和大小后,要经过一段时间的延时,避免传输黏包问题导致的传输数据丢失,通常调用定时器进行延时,保证数据传输的完整性。 按照之前数据传输的TCP服务器设计,首先是需要俩个套接字,一个用于监听,另一个用于数据收发,此处类似,只是基于之前的操作进行扩充。 根据流程分析所需ui结构,首先是一个文件选择按钮,用于选择将要发送的文件,然后是文件发送按钮,用于文件发送。还有就是文本编辑区,用于显示客户端连接与文件发送情况。 连接操作: 在界面的初始界面文件选择按钮与文件发送按钮不可使能,当监听套接字监听到客户端的连接后,恢复文件选择按钮。此外,在监听到客户端连接成功之后,首先是通过监听套接字获取与客户端进行通信所使用的的通信套接字,获取客户端的IP和端口号,由于IP原本形式为 Q HostAddress ,所以使用toString()进行类型转换。然后使用Qstring进行数据组包,将要显示的数据进行字符串使用Qstring函数进行拼接,然后将拼接好的字符串在文本编辑区进行显示,具体代码: //如果客户端和服务器连接 //tcpserver自动触发,newconnection connect

文本协议的设计与实现-1

妖精的绣舞 提交于 2020-02-01 23:38:06
1. 发送缓冲区和接收缓冲区的概念 缓冲区:暂存数据的内存空间 发送缓冲区:数据先进入发送缓冲区,之后由操作系统发送到远端主机 接收缓冲区:远端数据被操作系统接受后放入接收缓冲区 2. 数据粘黏问题 接收端无法知道数据的发送方式。 3. 应用层协议 网络程序设计中期望 每次发送一条完整的消息,每次接收一条完整的消息(发送和接收都是以一条完整的消息为单位进行) 即使接受缓冲区中有多条消息,消息之间有明显的界限,不会出现消息粘粘 消息中增加一些额外的类型,其涵盖了数据类型和数据长度等信息 什么是协议 协议是通讯双方为了数据交换而建立的规则、标准或规定的集合 -协议对数据传输的作用 通讯双方根据协议能够正确收发数据 通讯双方根据协议能够正确解释数据的意义 -协议设计示例 完整的消息包含 数据头:数据类型(指明了数据区的用途,长度固定) 数据长度:数据区的长度(长度固定) 数据区:字符数据(变长区域) 4. 协议设计示例 数据消息至少8个字节 可通过计算数据消息的总长度,能够避开数据粘粘问题 5. 代码 TextMessage.pro 1 QT -= gui 2 3 CONFIG += c++11 console 4 CONFIG -= app_bundle 5 6 # The following define makes your compiler emit warnings if

QSerialPortInfo

落爺英雄遲暮 提交于 2020-01-29 23:53:07
欢迎加入QQ群:853840665,一块学习分享资料 PyQt5类翻译、示例学习 class-learning 描述 提供有关现有串行端口的信息。 使用静态函数生成QSerialPortInfo对象的列表。列表中的每个QSerialPortInfo对象表示单个串行端口,可以查询端口名称、系统位置、描述和制造商。QSerialPortInfo类还可以用作QSerialPort类的 setPort() 方法的输入参数。 示例: from PyQt5.QtSerialPort import QSerialPortInfo port = QSerialPortInfo() for p in port.availablePorts(): print(p.manufacturer()) print(p.portName()) Public Functions QSerialPortInfo(const QSerialPortInfo &other) 构造另一个的副本。 QSerialPortInfo(const QString &name) 从串行端口名构造QSerialPortInfo对象。 该构造函数根据端口名在可用的串行端口中查找相关的串行端口,并构造该端口的串行端口信息实例。 QSerialPortInfo(const QSerialPort &port)

Nintendo Switch相册整理

泪湿孤枕 提交于 2020-01-28 15:03:52
NS的相册是按日期命名的,因此会产生很多文件夹,不太好找对应的照片或视频,而且文件名是md5码。 平时整理照片老费劲,所以我用Qt写了段整理NS照片和视频的代码: #include "mainwindow.h" #include "ui_mainwindow.h" #include <QFileDialog> #include <QAction> #define FILE_VIDEO "Video" #define FILE_PHOTO "Picture" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); mapGameCodeToName = { {"0C015090E6C5E3F06D97FEDE95458758","路易鬼屋3"}, {"0DC6ECE91CF3F6F02BAFC002E3FFBAAD","火焰纹章风花雪月"}, {"2AE606B8659FEA852E0ED6470C9814D9","怪物猎人GU"}, {"3C66B776DB1AA06323037049FACD96D3","精灵宝可梦剑"}, {"3D69A7ED02A1FF371048829E22A49194","暗黑破坏神3"}, {