拆分字符串并在Qtreewidget中显示

时间:2014-07-04 13:20:00

标签: c++ arrays string qt

我的编程知识和经验很差。我点击按钮时使用此代码块打开所需的文件;

QString filename = QFileDialog :: getOpenFileName();

QFile file(filename);
 if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
     return;

 while (!file.atEnd())
      {
          QByteArray line = file.readLine();
          processline(line);
      }

通过这一行我在QtextBrowser上显示它

void MainWindow :: processline(QByteArray paramline) {

ui->veri_cikis->append(paramline.constData());

}

文件上的数据是这样的

0; 100; 0

0; 100; 24

24; 500; 24

24; 100; 6

6; 100; 6

我必须按";"分割数据。在Qtreewidget列上标记并显示它们。我怎么做 ?我必须在第一列上显示每个第一部分,在第二列上显示第二部分。我总共有3列

1 个答案:

答案 0 :(得分:0)

我认为你所描述的更适合表视图而不是树视图。要解析你的字符串并将其拆分为';'您可以使用QByteArray::split()功能的角色。下面是示例代码,它使用从文件中读取的项创建和填充表视图:

QFile file(filename);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    return;

QTableWidget *table = new QTableWidget;
int row = 0;
while (!file.atEnd()) {
    QByteArray line = file.readLine();
    QList<QByteArray> tokens = line.split(';');
    int column = 0;
    row++;
    foreach (QByteArray ba, tokens) {
        QTableWidgetItem *item = new QTableWidgetItem(ba);
        table->setItem(row, column++, item);
    }
}