草庐IT

c++ - 使用Qt的XML库进行简单操作

我基本上想在我现有的项目中使用Qt的XML解析器。我以前只用过一次Qt,那是在QtDesigner上,我不太幸运在Google上找到任何关于如何使用XML库的信息。我下载了一个包含一个大列表的网页,我想解析它并将每个列表项添加到一个C++列表中。我在Ubuntu论坛上找到了这个示例代码...http://www.uluga.ubuntuforums.org/showpost.php?p=9112973&postcount=6我想使用它,除非我需要知道我到底需要添加什么才能访问它。另一个小问题是QDomDocument似乎是针对文件的(有道理),但我在字符串中有XML。XML库的哪一部分

c++ - 解析并删除 QString 的一部分

我想从QString中解析某种(或纯)XML代码。我的QString是这样的:catMycatisverynice.我想获得2个字符串:猫,我的猫非常好。我认为XML解析器可能不是必需的,但将来我会在同一个字符串中添加更多标签,所以这也是一个非常有趣的点。 最佳答案 在Qt中你有QRegExp可以帮助您解析QString的类。根据文档示例:QRegExprxlen("^(.*)(.*)$");intpos=rxlen.indexIn("catMycatisverynice.");QStringListlistif(pos>-1){l

c++ - QDomDocument - 如何从 QString 创建?

如何从QString创建QDomDocument,其中包含很多XML节点?我知道一种方法-setContent方法。但这不是更好的方法-如果我需要从内容类似于的字符串创建XMLStrawberryBelgianWaffles$7.95LightBelgianwafflescoveredwithstrawberriesandwhippedcream900Berry-BerryBelgianWaffles$8.95LightBelgianwafflescoveredwithanassortmentoffreshberriesandwhippedcream900HomestyleBreakf

c++ - 这是复制值两次吗?

假设我有这样一个类:classFoo{public:QStringa;voidsetA(QStringval);}并像这样实现setA():voidFoo::setA(QStringval){this->a=val;}并像这样使用它:Foof;QStringv="foo";f.setA(v);我是否在堆栈上复制了两次v结构?一个用于传递参数,另一个用于函数内的赋值,对吗?通过使用voidsetA(QString&val);将避免复制对象两次,因为在第一个中我只是复制一个引用(指针)而不是整个对象,所以唯一的拷贝对象在赋值中:this->a=val; 最佳答案

windows - 为什么 QString::localeAwareCompare() 不能正常工作

一位芬兰客户告诉我,芬兰语的正确(区域设置感知)排序是:a-z、å、ä、ö。但QString::localeAwareCompare()在WindowsVista上的Qt4.4.2中将其返回为:a,ä,å,b-o,ö,p-z。#include#include#include#includeintmain(intargc,char*argv[]){QLocale::setDefault(QLocale(QLocale::Finnish));QApplicationapp(argc,argv);QStrings1="a";QStrings2="ä";QStrings3="å";QStrin

c++ - 错误 : no matching function for call to 'QLabel::text(QString&)'

我尝试制作文件浏览器,但出了什么问题这是我的mainwindow.cpp#include"mainwindow.h"#include"ui_mainwindow.h"#includeMainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(this);}MainWindow::~MainWindow(){deleteui;}voidMainWindow::on_pushButton_4_clicked(){QStringfileName=QFileDialog

c++ - 如何将 QString 转换为 LPCSTR (Unicode)

如何将QString转换为LPCSTR?当定义了#ifdefUNICODE和未定义时,我该怎么做?非常感谢:) 最佳答案 我猜:QStringstr("ddddd");LPCSTRlstr=str.toStdString().c_str(); 关于c++-如何将QString转换为LPCSTR(Unicode),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5443479/

windows - 为什么此 QString 到 const char* 的转换会在 Windows 上生成 Debian 标识符?

我试图在Qt中包装libssh2,并具有以下代码:constchar*username=inUsername.toLocal8Bit().data();constchar*password=inPass.toLocal8Bit().data();问题是用户名和密码没有连接到系统。为什么?因为根据调试器,username"5.1p1Debian-6ubuntu2"password"5.1p1Debian-6ubuntu2"这些不是我为用户名或密码提供的值。我试过toAscii、toLatin1和附加(或不附加).data()。尽管如此,我还是得到了这些值,而不是预期值。我在Windows

c++ - 如何在 Windows 上将 Qt QString 转换为 LPCTSTR

我试图打开注册表并修改它。这是我打开注册表的方式:HKEYhKey;LPCTSTRsubKey=TEXT("aregistrysubkeytobeopened");RegOpenKeyEx(HKEY_LOCAL_MACHINE,subKey,0,KEY_ALL_ACCESS,&hKey);但这里有一个问题,我想使用一个QString来实用地更改子项。然后像这样放置QString:QStringsubKeyString=QString("%1").arg(subKeyName);LPCTSTRsubKey=TEXT(subKeyString);//butit'snotworkingher

c++ - 使用平假名将 std::wstring 转换为 QString

我正在尝试将包含平假名的文本从wstring转换为QString,以便它可以用于标签的文本属性。但是,我的代码无法正常工作,我不确定这是为什么。下面的转换方式明显告诉我我做错了:std::wstringmyWString=L"SomeHiragana:あいうえお";ui->label->setText(QString::fromStdWString(myWString));输出:一些平假名:ã‚ã„ã†ãˆãŠ如果我直接把它们放在字符串中,我可以在标签上打印平假名:ui->label->setText("SomeHiragana:あいうえお");输出:一些平假名:あいうえお这意味着我可