我需要创建带有行编辑的 qt gui 按钮,在该按钮中按下导致浏览文件夹以查找要导入的文本文件的按钮。文本文件将在之后被解析。我更喜欢使用组合框,但我不知道如何通过 gui 浏览文件夹。也许像 QDir 相关的东西应该可以工作,但请帮忙。
基本上,我想使用按钮/组合框导入/打开文本文件。
我需要创建带有行编辑的 qt gui 按钮,在该按钮中按下导致浏览文件夹以查找要导入的文本文件的按钮。文本文件将在之后被解析。我更喜欢使用组合框,但我不知道如何通过 gui 浏览文件夹。也许像 QDir 相关的东西应该可以工作,但请帮忙。
基本上,我想使用按钮/组合框导入/打开文本文件。
您正在寻找的是QFileDialog
将clicked()
您的信号连接QPushButton
到执行以下操作的插槽:
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open Text file"), "", tr("Text Files (*.txt)"));
然后您可以使用例如QFile
和QTextStream
解析文件:
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];
}
您可能想使用QFileDialog,该 QtDocument 中的示例很少。