qstring

Qt 学习(3)

≯℡__Kan透↙ 提交于 2020-01-02 00:44:33
Qt 修改 Windows 注册表项 在使用 FT232R 驱动(usb转串口设备)连接电脑时,下位机发送的数据会被转换器缓存起来,由串口转换器驱动设定的延时定时发送到 PC,这样就造成了一个问题:上位机和下位机同时发送数据时将会导致电平冲突(乱码)。为了解决这个问题就需要进入设备管理器中将设备的延时调小。然而每次设置设备管理器的延时都比较麻烦,已知设备延时的值是在注册表中存储,那么直接修改注册表项就可以将延时调小。 延时所在的注册表项为 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\FTDIBUS\\device-id\\0000\\Device Parameters\\LatencyTimer ,其中 device-id 与实际使用的设备有关。 Qt 读写注册表可以通过 QSettings 实现。 // RegisterModifier.cpp const int maxLatency = 3; const QString registerPath = QString("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\FTDIBUS"); const QString latencyKey = QString("LatencyTimer"); void

Qt 学习(2)

烂漫一生 提交于 2020-01-02 00:44:20
Qt 学习(2) Qt 的 QXmlStreamReader 在 Qt 应用程序中访问 XML 格式的文件数据,可以使用 [QXmlStreamReader][sreamreader] 对文件进行读取。关于 QXmlStreamReder 的使用,官方文档中有 QXmlStream Bookmarks Example 的示例可供参考。 常用的方法有: TokenType readNext() 读取下一个标记并返回它的类型 bool readNextStartElement() 在当前元素内,读取到下一个开始元素,若找到开始元素,就返回真,否则返回假 QXmlStreamAttributes attributes() 返回 StartElement 中的属性 QString name() 返回标签名,比如读取标签 <html> 就会返回 html void skipCurrentElement() 读取到当前元素的结尾,跳过它的子节点 QString readElementText() 读取元素中间的文本,比如 <p>test</p> 将会返回 test 对于一个自定义结构的 XML 文件,文件名为 test.xml ,如下: <?xml version="1.0" encoding="UTF-8"?> <Instructions version="2.0"> <Instruct

QProcess与外部程序的调用

吃可爱长大的小学妹 提交于 2020-01-01 10:10:12
项目做到一定阶段,常常须要在原来的project上调用外部程序。 Qt为此提供了QProcess类,QProcess可用于完毕启动外部程序,并与之交互通信。 一、启动外部程序的两种方式: (1)一体式:void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite) 外部程序启动后。将随主程序的退出而退出。 (2)分离式:void QProcess::startDetached(const QString & program, const QStringList & arguments, const QString & workingDirectory = QString(), qint64 * pid = 0) 外部程序启动后,当主程序退出时并不退出。而是继续执行。 值得注意的是。当程序路径中含有空格的时候,仅设置程序路径program是无法被识别的。解决方法是再将程序路径传递给arguments。 比如: //1-不带空格。能够启动 process->start("F:/AppInst/115/115com/115com.exe"); //2-带空格,无法启动 process->start("C:/Program Files/HaoZip

How to pretty-print QString with GoogleTest framework?

青春壹個敷衍的年華 提交于 2020-01-01 04:38:26
问题 I am using the GoogleTest (GTest) framework in conjunction with a Qt5 application. Whenever a test fails using a QString argument, the framework tries to print all the involved values. However, it cannot automatically handle foreign types (Qt5's QString in this case). QString test = "Test"; ASSERT_EQ(test, "Value"); How can I get GoogleTest to pretty print QStrings automatically (= without having to manually convert them each time)? 回答1: The GoogleTest Guide explains how you can in general

QGIS PyQt4 missing QString class

百般思念 提交于 2019-12-31 02:26:12
问题 i was trying to use a QString in the QGIS Python Console. from PyQt4.QtCore import QString but it says: ImportError: cannot import name QString In my Python IDLE it works fine, but i know that QGIS brings its own PyQt4. What could be the problem here? And could i solve it? import PyQt4.QtCore PyQt4.QtCore.QString() and from PyQt4 import QtCore QtCore.QString() dosen't works anyway. I was thinking about to copy the QtCore4.dll from my own PyQt4 installation to QGIS, but QGIS uses QtCore.prl

QT编写图片数据转换工具

六月ゝ 毕业季﹏ 提交于 2019-12-30 02:14:13
学习QT已经一个月了,觉得QT真是个好东西,他的这种跨平台机制简直太棒了!还有QML这东西,真牛B!在这段学习期间,因为一个项目的需要,需要将图片转成数据,然后传出去,那边接收到数据后再对应转换成图片,才有了下面这个小工具,开发环境:QT 4.7.0,在LINUX下面重新编译也可以在LINUX下面运行,代码不用改!先放张截图吧。 本人比较懒,还是贴出代码来吧!其中主要就是两个函数。 void picToData ( QString fromPic , QString toData , QString myformat ); void dataToPic(QString fromData,QString toPic,QString myformat); 外加几个辅助处理函数: QString getFileName(QString filter);//获取打开对话框中指定格式的文件QStringList getFileNames(QString filter);//获取打开对话框中指定格式的文件列表 void delayTime(int s); frmmain.h代码: #ifndef FRMMAIN_H#define FRMMAIN_H#include <QWidget>#include <QtGui>#include <QDrag>namespace Ui { class

QByteArray to QString

大兔子大兔子 提交于 2019-12-30 00:15:24
问题 I'm having issues with QByteArray and QString . I'm reading a file and stores its information in a QByteArray . The file is in unicode, so it contains something like: t\0 e\0 s\0 t\0 \0 \0 I'm trying to compare this value to my specified value, but it fails, because in the debugger I see it's not an unicode string. The code will explain everything: QByteArray Data; //contains unicode string "t\0 e\0 s\0 t\0 \0 \0" QString myValue = "test"; //value to compare. if(Data.contains(myValue)) //do

计算器核心算法——终结版

假装没事ソ 提交于 2019-12-29 10:04:52
QCalculatorDec.h #ifndef _QCALCULATORDEC_H_ #define _QCALCULATORDEC_H_ #include <QString> #include <QQueue> #include <QStack> class QCalculatorDec { protected: QString m_exp; // 代表用户输入的四则运算表达式 QString m_result; //计算结果 bool isDigitOrDot(QChar c); bool isSymbol(QChar c); bool isSign(QChar c); bool isNumber(QString s); bool isOperator(QString s); bool isLeft(QString s); bool isRight(QString s); int priority(QString s); bool match(QQueue<QString> exp); bool transform(QQueue<QString>& exp, QQueue<QString>& output); QQueue<QString> split(const QString& exp); QString calculate(QQueue<QString>& exp);

qt cef嵌入web

巧了我就是萌 提交于 2019-12-27 21:45:34
最近项目需要,研究了下libcef库, Cef (Chromium Embedded Framework) 简述 嵌入式Chromium框架(简称CEF) 是一个由Marshall Greenblatt在2008建立的开源项目,它主要目的是开发一个基于Google Chromium的Webbrowser控件。CEF支持一系列的编程语言和操作系统,并且能很容易地整合到新的或已有的工程中去。 它的设计思想政治就是易用且兼顾性能。CEF基本的框架包含C/C++程序接口,通过本地库的接口来实现,而这个库则会隔离宿主程序和Chromium&Webkit的操作细节。它在浏览器控件和宿主程序之间提供紧密的整合,它支持用户插件,协议,javascript对象以及javascript扩展,宿主程序可以随意地控件资源下载,导航和打印等,并且可以跟Google Chrome浏览器一起,支持高性能和Html5 技术。 Cef使用 首先下载cef库的源码,源码有2个大的版本,cef1和cef3,我使用的是cef3,因此cef1我就不过多解释,其实我也不太了解。刚开始使用的时候一定不能怕,可能有些人看了源码之后会发现源码异常的复杂,这个时候我建议网上多差点儿资料,因为我学的时候也是在网上找到了不少好的文章 。 下边是我在编译cef库的时候遇到的一些问题: 因为我的项目是基于qt的来做的

Qt高级——Qt插件开发

风流意气都作罢 提交于 2019-12-27 13:47:29
Qt高级——Qt插件开发 本文讨论Qt4.8的插件机制 一、Qt插件机制 1、Qt插件简介 插件是一种遵循一定规范的应用程序接口编写出来的程序,定位于开发实现应用软件平台不具备的功能的程序。 2、Qt插件API Qt提供了两种API用于创建插件:一种是高阶API,用于扩展Qt本身的功能,如自定义数据库驱动,图像格式,文本编码,自定义样式等;一种是低阶API,用于扩展Qt应用程序。 3、通过插件扩展应用程序功能 A、定义一个接口集(只有纯虚函数的类),用来与插件交流。 B、用宏Q_DECLARE_INTERFACE()将该接口告诉Qt元对象系统。 C、应用程序中用QPluginLoader来加载插件。 D、用宏qobject_cast()来判断一个插件是否实现了接口。 4、创建插件 创建一个插件的步骤如下: A、声明插件类,插件类继承自QObject和插件实现的接口。 B、用宏Q_INTERFACES()将插件接口告诉Qt元对象系统。 C、用宏Q_EXPORT_PLUGIN2()导出插件类。 D、用适当的.pro文件构建插件。 在加载插件前, QCoreApplication对象必须被初始化。 二、插件开发实例 1、创建工程 创建工程,选择“Other Project”->“Subdirs Project”,填写工程名称为PluginApp,选择保存目录。 2、创建应用工程