我无法正确拆分QString.除非我弄错了,对于多个分隔符我需要一个正则表达式,而我似乎无法找出一个表达式,因为我对它们很新.
字符串是从文件输入的文本:
f 523/845/1 524/846/2 562/847/3 564/848/4
我需要将每个数字单独放入一个数组中.
一些代码......
QStringList x;
QString line = in.readLine();
while (!line.isNull()) {
QRegExp sep("\\s*/*");
x = line.split(sep);
Run Code Online (Sandbox Code Playgroud)
有什么指针吗?
干杯
我正在尝试使用Visualc ++ 2010中的示例代码并崩溃
QString fileName = "helloworld";
std::string str = fileName.toStdString();
Run Code Online (Sandbox Code Playgroud) 我有一个QString,我从用户附加数据输入.
在QString的末尾,我需要附加"Normal"QString的十六进制表示.
例如:
QString Test("ff00112233440a0a");
QString Input("Words");
Test.append(Input);//but here is where Input needs to be the Hex representation of "Words"
//The resulting variable should be
//Test == "ff00112233440a0a576f726473";
Run Code Online (Sandbox Code Playgroud)
如何从ASCII(我认为)转换为十六进制表示?
谢谢你的时间.
可能重复: 用文件中的QString填充一些QTableWidgetItems
这是我在被卡住之前尝试过的...我已经使用Qt设计器插入了QTableWidget.
代码:mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
Run Code Online (Sandbox Code Playgroud)
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
/*add stuff inside the table view*/
QString line = "hello";
for(int i=0; i<ui->tableWidget->rowCount(); i++)
{
for(int j=0; j<ui->tableWidget->columnCount(); j++)
{
QTableWidgetItem *pCell = ui->tableWidget->item(i, j);
if(!pCell)
{
pCell …Run Code Online (Sandbox Code Playgroud) 我想知道在翻译中写学位符号的最佳和最干净的解决方案是什么。
我有,tr( "Snap to 90%1 angles" ).arg( QString::fromUtf8( "°" ) )但这不是很好。
我试过没有成功: tr( "Snap to 90° angles" )
我在 QAction 中使用它: mCommonAngleAction = new QAction( tr( "Snap to 90° angles" ), menu );
结果如下:

你有什么好的解决办法吗?
我写了一个超过 9 个参数的长 QString,我只是这样使用它:
QString html = QObject::tr(
"%1 %2 %3 %4 %5 %6 %7 %8 %9 %10 ...").arg(a, b, c, d, e, f, g, h, i, j);
Run Code Online (Sandbox Code Playgroud)
但是 QtCreator 产生错误,参数不能超过 9 个...我阅读了文档: http: //doc.qt.io/qt-5/qstring.html,其中有一个arg函数定义:
QString arg(const QString & a1, const QString & a2, const QString & a3, const QString & a4, const QString & a5, const QString & a6, const QString & a7, const QString & a8, const QString & a9) const
所以看来这就是问题所在。有什么优雅的方法可以处理这个问题,或者我只能连接 2 个字符串?
QString有一些路径:
QString path = "C:/bla/blah/x/y/file.xls";
Run Code Online (Sandbox Code Playgroud)
我认为可能获得最后一次补偿/将是一个良好的开端.然后我可以使用right方法(没有双关语)来获取该角色之后的所有内容:
path = path.right(path.lastIndexOf("/"));
Run Code Online (Sandbox Code Playgroud)
或者以更兼容的方式:
path = path.right(std::max(path.lastIndexOf("\\"), path.lastIndexOf("/")));
Run Code Online (Sandbox Code Playgroud)
两者都有相同的坏结果:
ah/x/y/file.xls
Run Code Online (Sandbox Code Playgroud)
这有什么不对?很明显,这条道路很快就被削减了,但它甚至更奇怪,它根本就没有削减/.
我有一个'QString'包含"-3.5",但是如果我尝试使用'toInt'方法将其转换为整数,则返回0.为什么?
QString strTest = "-3.5";
int intTest = strTest.toInt();
qDebug() << intTest;
Run Code Online (Sandbox Code Playgroud)
intTest将为0?
使用QNetworkManager get方法我从一个 url 接收一个 json。
做:qDebug()<<(QString)reply->readAll();结果是:
"\r\n[{\"id\":\"1\",\"name\":\"Jhon\",\"surname\":\"Snow\",\"phone\":\"358358358\"}]"
Run Code Online (Sandbox Code Playgroud)
所以我在做strReply = strReply.simplified();,结果是:
"[{\"id\":\"1\",\"name\":\"Jhon\",\"surname\":\"Snow\",\"phone\":\"358358358\"}]"
Run Code Online (Sandbox Code Playgroud)
但是我不能像 Json 一样使用它来解析它以在我的 qt 程序中使用它。所以我想我需要删除每个反斜杠\并获得:
"[{"id":"1","name":"Jhon","surname":"Snow","phone":"348348348"}]"
Run Code Online (Sandbox Code Playgroud)
我尝试过,strReply.remove(QRegExp( "\\\" ) );但任何奇怪的连接\都会导致解释器将最后\一个之后的每一件事都视为字符串。
我想从QString解析某种(或纯粹的)XML代码.
我的QString就像:
<a>cat</a>My cat is very nice.
Run Code Online (Sandbox Code Playgroud)
我想获得2个字符串:
猫,我的猫非常好.
我认为XML解析器可能不是必需的,但是将来我会在同一个字符串中有更多的标签,所以它也是一个非常有趣的点.