The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Segfaults в RH 9.0 & Qt 3.1 (+QThread)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Segfaults в RH 9.0 & Qt 3.1 (+QThread)"  
Сообщение от buddha eyez email on 21-Май-08, 15:14 
Пишу программу в RH 9.0 + Qt 3.1 (знаю что старьё ещё то, но попросили), юзаю QThread. В потоках управляю контролами путём посылки своих сигналов, приаттачиваю через connect как положено и вызываю через emit. Проблема: довольно часто на консоль валится куча таких сообщений -
X Error: BadPixmap
Code : ...bla bla bla

X Error: BadRequest
Code : ...bla bla bla

ну и т.д. А затем ненавистный Segfault. Кстати, иногда всё отлично работает. Код весь перелопатил несколько раз, падает как раз в тот момент, когда вызываются ф-ции отрисовки. Я в тупике, человеки добрые, подскажите что делать...

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Segfaults в RH 9.0 & Qt 3.1 (+QThread)"  
Сообщение от primus on 21-Май-08, 16:04 
>[оверквотинг удален]
>X Error: BadPixmap
>Code : ...bla bla bla
>
>X Error: BadRequest
>Code : ...bla bla bla
>
>ну и т.д. А затем ненавистный Segfault. Кстати, иногда всё отлично работает.
>Код весь перелопатил несколько раз, падает как раз в тот момент,
>когда вызываются ф-ции отрисовки. Я в тупике, человеки добрые, подскажите что
>делать...

Работа с GUI только из основного потока.
This thread is the only thread that is allowed to perform GUI operations,
including generating and receiving events from the window system.
===================================================================
Qt does not support creating QApplication and running the event loop (with QApplication::exec()) in a secondary thread. You must create the QApplication object and call QApplication::exec() from the main() function in your program.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Segfaults в RH 9.0 & Qt 3.1 (+QThread)"  
Сообщение от hellbat email(ok) on 22-Май-08, 01:12 
Так во втором потоке у меня и не создаётся QApplication. Там просто делается emit mysignal.
А к mysignal сделан коннект функции, которая и работает с контролами. Т.е. во 2 потоке всего лишь посылается сигнал, а обрабатывается он из главного потока.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Segfaults в RH 9.0 & Qt 3.1 (+QThread)"  
Сообщение от primus on 25-Май-08, 18:42 
А можете показать минимальную часть в общем работающего, но "падающего" кода?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Segfaults в RH 9.0 & Qt 3.1 (+QThread)"  
Сообщение от hellbat email(ok) on 27-Май-08, 23:19 
>А можете показать минимальную часть в общем работающего, но "падающего" кода?

Спасли меня, как всегда, родные маны :) В инете не нашёл, а нашёл в них, что даже emit нельзя делать, нужно послывать сообщения, используя QCustomEvent, которые добавятся в очередь и корректно обработаются QTшным потоком.

Спасибо за отклик на топик.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру