Импорт записей для заполнения в пользовательском интерфейсе из файла в qt4 - PullRequest
0 голосов
/ 01 ноября 2011

Я создал пользовательский интерфейс в qt4.Теперь я должен дать пользователю возможность заполнять записи в пользовательском интерфейсе из существующего в системе файла, который пользователь может просматривать.Теперь я могу установить записи редактирования строки в моем пользовательском интерфейсе из файла, указанного пользователем, но я не могу установить выделенный текст в выпадающих списках на то, что имеет файл.Это может быть очень расплывчато, я не могу объяснить это должным образом. Вот фрагмент кода, который я использовал:

//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,4 ГГц и 5 ГГц.Если выбранный пользователем файл имеет частоту 2,4 ГГц, то я хочу, чтобы выпадающий список обновился так, чтобы выделилась запись 2,4 ГГц.Надеюсь, я сделал свою точку зрения.Пожалуйста, помогите.

Спасибо

1 Ответ

1 голос
/ 01 ноября 2011

Вы должны использовать функцию findText , чтобы получить индекс заданного текста в выпадающем списке.

int frequencyIndex = ui->comboBox_2->findText(str);

if (frequnecyIndex != -1)
   ui->comboBox_2->setCurrentIndex(frequencyIndex);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...