Russian Qt Forum
Июля 05, 2025, 21:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QThread && QApplication::postEvent()  (Прочитано 16262 раз)
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

Сообщений: 5877


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


Просмотр профиля 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

Сообщений: 5877


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


Просмотр профиля 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

Сообщений: 5877


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


Просмотр профиля 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

Сообщений: 5877


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


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

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

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

Сообщений: 5877


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


Просмотр профиля 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

Сообщений: 5877


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


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

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

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


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