qstring

Get plain text from QLineEdit

我的梦境 提交于 2019-11-27 08:12:53
问题 I want to retrieve plain text from QLineEdit() object. The text method returns a QString object. I just want a simple string object. I am using pyqt4. def n(self): new_label=QLineEdit() new_label.setText("txt") txt=self.new_label.text() self.name=txt txt should be a simple string not QString . 回答1: To convert one QString in Python 2 , do this: self.name = unicode(self.new_label.text()) To automatically convert all QStrings, put this at the beginning of your code: import sip sip.setapi(

《踩过的坑》

北城以北 提交于 2019-11-27 06:44:07
sys用IRP强删之后在XP下很容易蓝在奇怪的位置,XP以上就没事 CFileDialog的GetFolderPath不支持XP,XP一用必炸 QString qstr = QString::fromWCharArray( p, size); 如果size比_tstrlen(p)大N的话,生成的qstr会变成原始字符串后面带N个\0,长度比正常的字符串多N,而且调试看到的QString内容只有原始字符串,只有用QByteArray才能看到后面多的几个\0,这种奇葩QString还会影响到.compare的结果。所以在p本身带\0的情况下size应该尽可能不写,让他自己计算size。(这个问题在使用stl等的string时也会出现,所以最好不要作死为了那点性能去手动指定length) ThinkPHP 3.2在SAE环境下 关闭调试模式时定位模板会忽略大小写,导致在linux环境下直接找不到模板 'SHOW_ERROR_MSG' => true, 可以把所有路径有问题的php文件找出来。实际上只要在$this->display里面强制指定模板文件正确的大小写就好了。 SAE的文档http://www.sinacloud.com/doc/sae/php/background-jobs-with-resque.html是坑人的,按他的步骤写后台进程会无限报错,必须把 worker.php

CH01

狂风中的少年 提交于 2019-11-26 22:31:29
CH101_计算圆的面积 ui 如下: 方法一:在LineEdit中输入半径值,然后点击计算,在面积中显示结果: 1 void Dialog::on_countBtn_clicked() // 信号用的是clicked() QAbstractButton 2 { 3 bool ok; 4 QString tempStr; 5 QString valueStr = ui->radiusLineEdit->text(); 6 int valueInt = valueStr.toInt(&ok); //ok 传出参数 ,可以判断转换是否成功! 7 qDebug()<<ok; 8 9 double area = valueInt*valueInt*PI; //PI 是个宏 10 ui->areaLabel_2->setText(tempStr.setNum(area)); 11 } 方法二:在LineEdit 中输入半径值,直接就在后面显示面积: void Dialog::on_radiusLineEdit_textChanged(const QString &arg1) //信号用的是textChanged(QString) QLineEdit { bool ok; QString tempStr; QString valueString = ui->radiusLineEdit-

QT学习笔记(六)

六月ゝ 毕业季﹏ 提交于 2019-11-26 20:49:02
第11章 容器类 Qt提供了自己的容器类,在编写Qt程序时,既可以使用Qt容器,也可以使用STL容器。 连续容器 1)向量 QVector<T> :它是一种与数组相似的数据结构,它可以把项存储到内存中相邻的位置。向量与普通C++数组的区别在于:向量知道自己的大小并且可以被重新定义大小。 在向量的末尾添加或删除额外的项是非常快速有效的,而在向量的前面或中间插入或删除项则是比较耗时的,因为这样可能导致大量的项目在内存中移动一个位置。对于较大的向量来说,这种现象尤为严重,因此Qt提供了QLinkList<T>容器。 2)链表 QLinkList<T> : 它是一种把项存储到内存中不相邻位置的数据结构。与向量不同,链表不支持快速的随机访问,但它提供“常量时间”的插入和删除。链表并未提供[]操作符,因此必须使用迭代器来遍历项而不能使用整数索引。当向一个很大的列表中间插入项目时,QLinklist比下面的QList拥有更好的性能。 3)列表 QList<T> : 它结合了单一类中QVector<T>和QLinkList<T>的最重要的优点,是目前最常用的容器类。它存储了给定值的一个列表,而且这些值可以通过索引访问。在内部QList使用数组实现,它支持随机访问。在QList<T>的任意一端插入或者移除项都是非常快速的

read QProcess output to string

不羁岁月 提交于 2019-11-26 20:24:59
问题 I have a code that uses QProcess like this. int main(int argc, char *argv[]) { int status=0; QProcess pingProcess; QString ba; QString exec = "snmpget"; QStringList params; params << "-v" << "2c" << "-c" << "public" << "10.18.32.52" << ".1.3.6.1.4.1.30966.1.2.1.1.1.5.10"; status=pingProcess.execute(exec, params); pingProcess.close(); } This outputs the following. SNMPv2-SMI::enterprises.30966.1.2.1.1.1.5.10 = STRING: "0.1" I want to take(read) this output as string. I searched for this and I

KDE4/5 命令执行漏洞 (CVE-2019-14744) 简析

为君一笑 提交于 2019-11-26 17:12:31
作者: HACHp1@知道创宇404实验室 日期: 2019/08/08 原文链接 漏洞简介 KDE Frameworks是一套由KDE社群所编写的库及软件框架,是KDE Plasma 5及KDE Applications 5的基础,并使用GNU通用公共许可证进行发布。其中所包含的多个独立框架提供了各种常用的功能,包括了硬件集成、文件格式支持、控件、绘图功能、拼写检查等。KDE框架目前被几个Linux发行版所采用,包括了Kubuntu、OpenMandriva、openSUSE和OpenMandriva。 2019年7月28日Dominik Penner(@zer0pwn)发现了KDE framework版本<=5.60.0时存在命令执行漏洞。 2019年8月5日Dominik Penner在Twitter上披露了该漏洞,而此时该漏洞还是0day漏洞。此漏洞由KDesktopFile类处理.desktop或.directory文件的方式引起。如果受害者下载了恶意构造的.desktop或.directory文件,恶意文件中注入的bash代码就会被执行。 2019年8月8日,KDE社区终于在发布的更新中修复了该漏洞;在此之前的三天内,此漏洞是没有官方补丁的。 一些八卦 在Dominik Penner公开此漏洞时,并没有告诉KDE社区此漏洞

How to change string into QString?

心已入冬 提交于 2019-11-26 15:14:31
问题 What is the most basic way to do it? 回答1: If by string you mean std::string you can do it with this method: QString QString::fromStdString(const std::string & str) std::string str = "Hello world"; QString qstr = QString::fromStdString(str); If by string you mean Ascii encoded const char * then you can use this method: QString QString::fromAscii(const char * str, int size = -1) const char* str = "Hello world"; QString qstr = QString::fromAscii(str); If you have const char * encoded with system

How to convert QString to std::string?

强颜欢笑 提交于 2019-11-26 11:32:14
I am trying to do something like this: QString string; // do things... std::cout << string << std::endl; but the code doesn't compile. How to output the content of qstring into the console (e.g. for debugging purposes or other reasons)? How to convert QString to std::string ? Artyom One of the things you should remember when converting QString to std::string is the fact that QString is UTF-16 encoded while std::string ... May have any encodings. So the best would be either: QString qs; // Either this if you use UTF-8 anywhere std::string utf8_text = qs.toUtf8().constData(); // or this if you

Qt5教程: (4) 带参数信号与槽

喜欢而已 提交于 2019-11-26 10:16:57
在subwidget.h中声明一个signal. 和之前的信号函数重名但是有参数: void backSignal(QString); 之后在subwidget.cpp的槽函数sendSignal()中也发送该信号: emit backSignal("子窗口请求返回"); 在mainwidget.h中声明一个槽函数来响应该信号: void logSlot(QString); 并在mainwidget.cpp中定义该槽函数, 打印信号传过来的字符串: void MainWidget::logSlot(QString log) { qDebug() << log; } 因为使用到了qDebug, 所以需要在mainwidget.h中添加头文件: #include <QDebug> 下面在mainwidget.cpp中建立连接即可: connect(&subWin, backSignal, this, &MainWidget::logSlot); 如果没有重名信号的话, 这样写是没有问题的, 但是我们现在由两个backSignal信号, 一个不带参数, 一个带参数, 编译器是没办法区分的, 需要我们告诉它, 所以, 删掉那两条信号都是backSignal的connect语句重新建立连接: void(SubWidget::*backSignal)() = &SubWidget:

49.Qt-网络编程之QTCPSocket和QTCPServer(实现简易网络调试助手)

天涯浪子 提交于 2019-11-26 10:16:00
在上章 48.QT-网络通信讲解1 , 我们学习了网络通信基础后,本章便来实战一篇.源码正在上传中, 等下贴地址. PS: 支持客户端和服务器,提供源码,并且服务器支持多客户端连入,并且可以指定与个别客户端发送数据,也可以给所有连入的客户端发送数据. 1. 效果图所下所示: 如下图所示,当服务器状态下,如果有客户端连入,会提示客户端信息: 2. 效果操作 客户端操作: 服务器操作: 从上面操作可以看出,服务器支持多客户端连入,并且可以指定与个别客户端发送数据,也可以给所有连入的客户端发送数据. 3. 首先创建UI 4. 注意事项 不管是服务器还是客户端,都可以通过 peerAddress()和peerPort() 来获取目标地址和目标端口 4.1 服务器监听时 比如服务器,则可以通过QTcpSocket的peerAddress()则可以获取连入的客户端地址 也可以通过children()来获取所有连入的客户端 (需要注意的是也会获取到服务器本身的tcp地址和端口) ,示例如下: QList<QTcpSocket *> m_tcps = m_server.findChildren<QTcpSocket *>(); foreach (QTcpSocket *tcp, m_tcps) { qDebug() << "Address:" << tcp->peerAddress ();