Russian Qt Forum
Ноябрь 25, 2024, 17:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QThread && QApplication::postEvent()  (Прочитано 15710 раз)
ZeBriD
Гость
« Ответ #15 : Март 13, 2009, 19:11 »

нельзя юзать гуевые классы в негуевом(рабочем) потоке.
опять-таки ассистант, см.Thread Support in Qt
Код:
QObject Reentrancy
...Although QObject is reentrant, the GUI classes, notably QWidget and all its subclasses, are not reentrant.
They can only be used from the main thread. As noted earlier,
QCoreApplication::exec() must also be called from that thread...
Спасибо большое за пояснение.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #16 : Март 13, 2009, 19:11 »

Да не в том дело. Загляни в исходники QFileIconProvider, там работа через QPixmap, а на выходе QIcon. Т.е. получается, что в потоке оперирую с QPixmap, что не позволено.
[offtop]
типа QFileIconProvider юзается в потоке? че-то не пойму Улыбающийся
[/offtop]
Да, в потоке получаю иконки из QFileIconProvider::icon(QFileInfo&).
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
spirit
Гость
« Ответ #17 : Март 13, 2009, 19:14 »

Да не в том дело. Загляни в исходники QFileIconProvider, там работа через QPixmap, а на выходе QIcon. Т.е. получается, что в потоке оперирую с QPixmap, что не позволено.
[offtop]
типа QFileIconProvider юзается в потоке? че-то не пойму Улыбающийся
[/offtop]
Да, в потоке получаю иконки из QFileIconProvider::icon(QFileInfo&).
поняв Улыбающийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #18 : Март 13, 2009, 19:16 »

Дык можно что-нибудь сделать без велосипедов?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
spirit
Гость
« Ответ #19 : Март 13, 2009, 19:16 »

Дык можно что-нибудь сделать без велосипедов?
надо подумать. Улыбающийся
а какая задача собственно?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #20 : Март 13, 2009, 19:19 »

Ну, типа файловый менеджер пытаюсь писать для саморазвития.  Строит глазки
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
spirit
Гость
« Ответ #21 : Март 13, 2009, 19:21 »

так это, а чем QFileSystemModel не подходит для этого дела?
или покриколу самому?  Улыбающийся
Записан
BRE
Гость
« Ответ #22 : Март 13, 2009, 19:23 »

Да, в потоке получаю иконки из QFileIconProvider::icon(QFileInfo&).
Залез в исходники, в linux не дает даже сконструировать QPixmap в не GUI-потоке (создает null-pixmap).
Наверное от FileIconProvider в отдельном потоке прийдется отказаться.  Грустный
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #23 : Март 13, 2009, 19:24 »

А как по другому? Неохота самому в винапи пока лезть.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #24 : Март 14, 2009, 14:29 »

так это, а чем QFileSystemModel не подходит для этого дела?
или покриколу самому?  Улыбающийся
Хотя бы потому, что у pagefile.sys не показывает размер и иконку.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #25 : Март 14, 2009, 14:38 »

Хотя бы потому, что у pagefile.sys не показывает размер и иконку.

Это давно известный баг в Qt:

#167099 - On Windows QFileInfo::exists() returns false for c:\pagefile.sys and c:\hiberfil.sys
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #26 : Март 14, 2009, 14:46 »

Да я знаю, что это баг, уже когда-то на форуме спрашивал. Вот из-за этого сам и решил покопаться. И еще с правами под виндой кака.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.059 секунд. Запросов: 23.