我在 qt4 中创建了一个 UI。现在我应该给用户一个选项,让用户从系统上现有的文件中填写 UI 中的条目,用户可以浏览该文件。 现在,我可以根据用户指定的文件在我的 UI 中设置行编辑条目,但我无法将组合框中突出显示的文本设置为文件所具有的内容。这可能非常模糊,我无法正确解释。这是我使用的代码片段:
//browsing for the file
path = QFileDialog::getOpenFileName(
this,
"Choose a file to import data from",
QString::null);
QFileInfo fi(path);
ui->lineEdit_21->setText( path );
//opening the file specified by user, for reading
name = fi.fileName();
dir = fi.path();
QDir::setCurrent(dir);
QFile read(name);
QString str;
if (!read.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QTextStream in(&read);
while (!in.atEnd())
{
QString line = in.readLine();
//filling the UI from the file
if(line.contains("AP SSID :", Qt::CaseInsensitive))
{
str = line.section(':', 1, 1);
ui -> lineEdit->setText(str);
}
}
这工作正常,但现在如何根据文件更改组合框中的选定条目?
if(line.contains("FREQUENCY :", Qt::CaseInsensitive))
{
str = line.section(':', 1, 1);
ui -> comboBox_2->setEditText(str);
}
我试过了,但是没用。我的 combobox_2 有两个频率 2.4GHz 和 5GHz。如果用户选择的文件有 2.4GHz,那么我希望组合框自行更新,以便突出显示 2.4GHz 条目。希望我已经表达了我的观点。请帮忙。
谢谢
最佳答案
您必须使用 findText函数以获得组合框中给定文本的索引。
int frequencyIndex = ui->comboBox_2->findText(str);
if (frequnecyIndex != -1)
ui->comboBox_2->setCurrentIndex(frequencyIndex);
关于c++ - 在qt4中从文件中导入要在UI中填写的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7963586/