Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: irv от Апрель 09, 2009, 09:30



Название: Работа с текстом
Отправлено: irv от Апрель 09, 2009, 09:30
Начал изучать qt и решил для начала написать программу тестирования.
Вот код:
Код:
QFile file(fileName);

    if (!file.open(QFile::ReadOnly | QFile::Text)) {
        QMessageBox::warning(this, tr("Предупреждение"),
                             tr("Файл не был открыт!"));
        return;
    }

    QTextStream in(&file);
//разбираем файл с тестами
while (in.readLine() == "<QUESTION>")
    {
    ui.textEdit->setPlainText(in.readLine());
    if (in.readLine() != "<ANSWER>")
                {
                QString type = in.readLine();
                QMessageBox::information(this,tr("Информация"), tr("Сложность вопроса: " + type));
                }

    if (in.readLine() != "<TRUE>")
    {
    ui.radioButton->setText(in.readLine());
    ui.radioButton_2->setText(in.readLine());
    ui.radioButton_3->setText(in.readLine());
    ui.radioButton_4->setText(in.readLine());
    ui.radioButton_5->setText(in.readLine());
    ui.radioButton_6->setText(in.readLine());
    curFile = in.pos();
        curFile = in.readLine();
        }
      }
    QMessageBox::information(this,tr("Информация"), tr("Тестирование закончено!"));
    setCurrentFile(fileName);

Как сделать так чтобы после того цикл while занес данные в виджеты, было время на ответ?
Где надо поставить таймут?
Где здесь у меня ошибка?




Название: Re: Работа с текстом
Отправлено: spirit от Апрель 09, 2009, 09:34
в конце итерации цикла поставь qApp->processEvents();, либо же вынеси чтение файла в рабочий поток.


Название: Re: Работа с текстом
Отправлено: irv от Апрель 09, 2009, 10:44
Спасибо! Заработало :)


Название: Re: Работа с текстом
Отправлено: Danila_Bagrofff от Апрель 13, 2009, 09:18
processEvents - вещь, конечно, хорошая, но потоками реализовывать такое - грамотнее.