1

我需要创建带有行编辑的 qt gui 按钮,在该按钮中按下导致浏览文件夹以查找要导入的文本文件的按钮。文本文件将在之后被解析。我更喜欢使用组合框,但我不知道如何通过 gui 浏览文件夹。也许像 QDir 相关的东西应该可以工作,但请帮忙。

基本上,我想使用按钮/组合框导入/打开文本文件。

4

2 回答 2

4

您正在寻找的是QFileDialog

clicked()您的信号连接QPushButton到执行以下操作的插槽:

QString fileName = QFileDialog::getOpenFileName(this,
    tr("Open Text file"), "", tr("Text Files (*.txt)"));

然后您可以使用例如QFileQTextStream解析文件:

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

QTextStream in(&file);
while (!in.atEnd())
{
    QString line = in.readLine();
    process_line(line);
}

编辑

如果要解析每行包含 31 个要存储在 a 中的浮点数的文件float data[31],我将首先创建该类:

struct FloatLine { float data[31]; };

然后将所有行存储在 a 中QList<FloatLine>,这样:

QList<FloatLine> floatLines;
QTextStream in(&file);
while (!in.atEnd())
{
    QString line = in.readLine();
    QTextStream lineStream(&line);
    floatLines << FloatLine();
    for(int i=0; i<31; i++)
            lineStream >> floatLines.last().data[i];
}
于 2013-08-30T03:32:51.570 回答
0

您可能想使用QFileDialog,该 QtDocument 中的示例很少。

于 2013-08-30T03:32:45.787 回答