QThread: изменение элементов QDialog, Красивое решение. |
Здравствуйте, гость ( Вход | Регистрация )
QThread: изменение элементов QDialog, Красивое решение. |
canavar |
29.3.2009, 17:40
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 26.3.2009 Пользователь №: 643 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем доброго вечера.
Есть такая проблема: Существует окно QDialog. При загрузке этого окна происходят довольно тяжелые вычисления и, как следствие, окно замораживается. Элементов на форме 6 штук ( два QTableWidget, четыре QListWidget). Хотелось бы вынести все вычисления в отдельный поток. Но я не понимаю, как сделать так, чтобы второй поток смог изменять Widget'ы на форме QDialog. Можно конечно в поток передавать указатели на Widget'ы, но у меня есть подозрение, что существует более красивое решение... Что вы можете сказать по этому поводу? Заранее спасибо. |
|
|
igor_bogomolov |
30.3.2009, 1:55
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
2 canavar Внимательние читайте предыдущие сообщения. Нельзя работать с виджетами в дочернем потоке.
Что такое addItem()? У QTableWidget нет такого метода. Или там должен быть QListWidget? В дочернем потоке нужно производить вычисления, а результат высылать через сигнал. Ловить этот сигнал в Gui потоке, и в нем устанавливать значения для таблиц и списков. Привыкаем к следущему объявлению void add(const QString &a) |
|
|
Текстовая версия | Сейчас: 22.12.2024, 12:40 |