Не удается обновить текст Редактировать текст QT - PullRequest
1 голос
/ 07 ноября 2011

У меня проблема.Кажется, мой textEditBox не обновляется при вызове моей функции Addtext.

Вот мой Addtext:

void CTextBox::AddText(QString string, QString spriteString)  
{

    textBrowser->setText(string + spriteString);
    update();

}

Затем другой класс вызывает функцию, и она должнадобавить текст к textbox, но это не так.

Ответы [ 2 ]

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

Вот тривиальный пример того, что, по вашему мнению, вы пытаетесь сделать.Может быть, вы можете увидеть, чем отличается ваш дизайн?

Примечание: явное update() не требуется.Я думаю, что это красная сельдь.Я думаю, что гораздо более вероятно, что (1) вы как-то вызываете свой метод AddText с пустыми строками, или (2) ваше real текстовое редактирование является другой переменной, и каким-то образом создали две из нихобновляется тот, который просто существует в памяти и никогда не был добавлен в макет.Возможно, код вашего FileLoaderQT поможет?(Вы можете редактировать свой вопрос вместо публикации в комментариях.)

#include <QtGui>
int main(int argc, char **argv) {
  QApplication app(argc, argv);
  QMainWindow w;
  QTextEdit *edit = new QTextEdit;
  w.setCentralWidget(edit);
  edit->setText("Hello world!");
  w.show();
  edit->append("Hello world again!");
  return app.exec();
}
1 голос
/ 07 ноября 2011

Как вы вызываете CTextBox :: AddText ()?update() только планирует paintEvent() на потом, когда программа вернется в цикл обработки событий.Это означает, что

  1. вам действительно нужно иметь цикл обработки событий, т.е.в какой-то момент вам нужно позвонить qApp->exec();

  2. , вам нужно разрешить программе некоторое время набрать qApp->processEvents() (вставьте это после update()), если вы хотите, чтобы любое рисование было сделановнутри блокировки while() {...} или что-то в этом роде.

Редактировать: Если подумать, вам даже не нужно вызывать update() или processEvents(), если ваша программа вернетсячерез некоторое время после AddText, так что, похоже, действительно есть проблема с циклом событий.Разместите свой main.cpp, не так ли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...