crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QThread: изменение элементов QDialog, Красивое решение.
canavar
  опции профиля:
сообщение 29.3.2009, 17:40
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 26.3.2009
Пользователь №: 643

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем доброго вечера.

Есть такая проблема: Существует окно QDialog. При загрузке этого окна происходят довольно тяжелые вычисления и, как следствие, окно замораживается. Элементов на форме 6 штук ( два QTableWidget, четыре QListWidget). Хотелось бы вынести все вычисления в отдельный поток.

Но я не понимаю, как сделать так, чтобы второй поток смог изменять Widget'ы на форме QDialog. Можно конечно в поток передавать указатели на Widget'ы, но у меня есть подозрение, что существует более красивое решение...

Что вы можете сказать по этому поводу?

Заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 29.3.2009, 20:19
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(igor_bogomolov @ 29.3.2009, 21:03) *
Все равно экземпляры класса, наследовонного от QThread, будут создаваться в "Gui_class", так и коннекты между ними лучше делять тамже.
Это верно, но не всегда. Если у тебя большой проект, то лучше все же разнести по управляющим классам.

Цитата(canavar @ 29.3.2009, 21:07) *
Так можно узнать почему, если я использую exec() у меня вылезает exception, а если бесконечный цикл, то все нормально?
На вскидку пока ничего не приходит в голову. Покажи код.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- canavar   QThread: изменение элементов QDialog   29.3.2009, 17:40
- - ViGOur   Цитата(canavar @ 29.3.2009, 18:40) Но я н...   29.3.2009, 17:46
- - Litkevich Yuriy   А ещё лучше использовать сигналы и слоты.   29.3.2009, 17:48
- - canavar   Под красивым решением имеется ввиду... кхм... не о...   29.3.2009, 17:53
- - Litkevich Yuriy   Цитата(canavar @ 29.3.2009, 21:53) Нет ни...   29.3.2009, 17:57
- - canavar   Что-то типа: while(!stopped) { } Есл...   29.3.2009, 18:00
- - igor_bogomolov   Цитата(canavar @ 29.3.2009, 18:40) Но я н...   29.3.2009, 18:11
- - ViGOur   Цитата(igor_bogomolov @ 29.3.2009, 19:11)...   29.3.2009, 19:46
- - igor_bogomolov   ИМХО. Я так понимаю, что это от реализации програ...   29.3.2009, 20:03
- - canavar   Спасибо за ответы. Так можно узнать почему, если...   29.3.2009, 20:07
- - ViGOur   Цитата(igor_bogomolov @ 29.3.2009, 21:03)...   29.3.2009, 20:19
- - canavar   ManageThread.h/* * ManageThread.h * * Created ...   29.3.2009, 20:36
|- - trdm   Цитата(canavar @ 29.3.2009, 21:36) Manage...   29.3.2009, 21:39
- - canavar   Хорошо.   29.3.2009, 22:13
- - igor_bogomolov   2 canavar Внимательние читайте предыдущие сообщен...   30.3.2009, 1:55
- - _canavar   Огромное спасибо! Теперь стало понятно.   30.3.2009, 13:43


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 18:37