c++ - 在qt4中从文件中导入要在UI中填写的条目

标签 c++ qt qt4

我在 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/

相关文章:

c++ - 颠覆 "Working copy locked"问题

qt - 如何将字体粗体设置为表格小部件中的特定行

c++ - 在取消线程上使用 QFuture 释放内存

c++ - 如何在Matlab中保存多维矩阵的二进制并将其加载为C++结构?

c++ - QString 的 toHtmlEscaped 不起作用

c++ - QSortFilterProxyModel 崩溃的应用程序

macos - 如何在 qmake 中强制更新 OSX 应用程序包?

c++ - 为什么我不能使用 Qt 中的 QXmlStreamReader 解析 XML 文件?

c++ - 在Qt中如何检查插入的SD卡是否写保护?

c++ - O(n^m) 复杂度的递归算法。