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'ы, но у меня есть подозрение, что существует более красивое решение...

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

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


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


ИМХО.
Я так понимаю, что это от реализации программы зависит.
Чтобы имитировать сигнал никаких указателей не нужно. Вот уже где распологается коннект, это другое дело.
Все равно экземпляры класса, наследовонного от QThread, будут создаваться в "Gui_class", так и коннекты между ними лучше делять тамже.

connect(&thread, SIGNAL(thread_signal()), this, SLOT(gui_slot()));

Сообщение отредактировал igor_bogomolov - 29.3.2009, 20:05
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- 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


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


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




RSS Текстовая версия Сейчас: 29.3.2024, 17:16