QstringList 到 Qstring 的转换问题

QstringList to Qstring conversion issues

本文关键字:转换 问题 Qstring QstringList      更新时间:2023-10-16

我正在使用qt框架开发VS2015。在我的源代码中,我有一个在GUI屏幕中打印的功能。每次需要打印某些内容时都会调用此函数。事情是这样的。

void Trial::Print_MessageBox(QString string)
{
    ui.MessagesScreen->appendPlainText(string); 
    Cursor_Messagebox.movePosition(QTextCursor::End);
    ui.MessagesScreen->setTextCursor(Cursor_Messagebox);
    ui.MessagesScreen->ensureCursorVisible();
}
// Output in MessageBox
void Trial::Print_MessageBox(QFlags<QNetworkInterface::InterfaceFlag> flags)
{
    QString str = QString("Flag %1").arg(flags);
    ui.MessagesScreen->appendPlainText(str);
}

上述功能没有问题,运行良好。

现在我正在尝试读取文本文件。这具有一组没有顺序或大小的值。举个例子:

票价:231, 54, 4

47777, 2211, 676, 9790, 34236, 7898

1, 3

目标是将它们转换为整数(逐行)

并在GUI中打印它们,并将它们(逐行)发送到其他系统。所以我尝试用以下内容来做到这一点。

void Trial::ReadFile_Data()
{
    QFile file("input.txt");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        Print_MessageBox("Error in reading File");
        return;
    }
    QTextStream in(&file);
    while (!in.atEnd())
    {
        QString line = in.readLine();
        Print_MessageBox(line);
        int conv = line.toInt();
        QString str = QString("%1 %2").arg("Values are: ").arg(conv);
        Print_MessageBox(str);
        QStringList fields = line.split(",");
    }
    file.close();
}

当我打印"行"时,它只是打印与文件中相同的值。当我进行转换和打印时,我收到一个错误(这是预期的)现在我尝试在拆分的帮助下删除","然后我得到 QstringList,我无法使用它,因为我有 Qstring 函数要打印(这无法更改)

我没有从这里得到任何指示。请帮助我,因为这长期以来一直困扰着我。

很简单...

QStringList::const_iterator constIterator;
for (constIterator = fonts.constBegin(); constIterator != fonts.constEnd();
           ++constIterator) {
        cout << (*constIterator).toLocal8Bit().constData() << endl;
}

其中字体是你的QStringlist

您的问题简化为"如何迭代QStringList"。

喜欢这个:

// C++11
for (auto field : fields) Print_messageBox(field);
// C++98
foreach (QString field, fields) Print_messageBox(field);

有关如何实施foreach又名Q_FOREACH的信息,请参阅此处。