Название: Работа с текстом
Отправлено: 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 - вещь, конечно, хорошая, но потоками реализовывать такое - грамотнее.
|