我的编程知识和经验很差。我点击按钮时使用此代码块打开所需的文件;
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列
答案 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);
}
}