Russian Qt Forum

Qt => Вопросы новичков => Тема начата: demaker от Декабрь 14, 2011, 13:30



Название: Ошибка
Отправлено: demaker от Декабрь 14, 2011, 13:30
Подскажите пожалуйста, из-за чего может выдаваться данное сообщение об ошибке.

QGtkStyle was unable to detect the current GTK+ theme.
Qt: Session management error: None of the authentication protocols specified are supported

Спасибо.


Название: Re: Ошибка
Отправлено: Bepec от Декабрь 14, 2011, 13:36
Можете ли вы уточнить, кто выдает такую ошибку? при каком действии? И если это программа, то желательно(но не обязательно) код.


Название: Re: Ошибка
Отправлено: demaker от Декабрь 14, 2011, 13:41
Ошибку выдает консоль в Qt Creator.
Да и после завершения работы программы в консоле пишется QCoreApplication::postEvent: Unexpected null receiver.
Код программы могу выслать.


Название: Re: Ошибка
Отправлено: LisandreL от Декабрь 14, 2011, 13:47
А GTK-то у вас в системе имеется? Вообще под какой осью всё происходит?


Название: Re: Ошибка
Отправлено: demaker от Декабрь 14, 2011, 14:04
Ось - Fedora 10
GTK -  ??? наверное нет


Название: Re: Ошибка
Отправлено: demaker от Декабрь 14, 2011, 14:52
GTK - поставил но всеравно выдает ошибку ???


Название: Re: Ошибка
Отправлено: andrew.k от Декабрь 14, 2011, 15:02
это в системе проблема, тебе не куте надо ковырять, и линукс.орг и интернет.


Название: Re: Ошибка
Отправлено: demaker от Декабрь 15, 2011, 14:58
Понятно :-\ Спасибо  :)


Название: Re: Ошибка
Отправлено: demaker от Декабрь 16, 2011, 13:48
 :) Подскажите а всязи с чем может возникать данная ошибка

QCoreApplication::postEvent: Unexpected null receiver???

С GTK вроде я разобрался


Название: Re: Ошибка
Отправлено: andrew.k от Декабрь 16, 2011, 13:53
Так ты бы написал как решил свою проблему, чтобы другой человек меньше маялся. Или ты хочешь, чтобы тебя похвалили?

Связано, очевидно, с нулевым получателем события  ;)


Название: Re: Ошибка
Отправлено: demaker от Декабрь 16, 2011, 13:55
Поставаил Linux Ubuntu  :)


Название: Re: Ошибка
Отправлено: demaker от Декабрь 16, 2011, 13:56
А что значит нулевое получение события???


Название: Re: Ошибка
Отправлено: andrew.k от Декабрь 16, 2011, 14:12
нулевой получатель, а не нулевое получение.
первый параметр в вызове postEvent


Название: Re: Ошибка
Отправлено: demaker от Декабрь 19, 2011, 15:38
Что не получается никак разобраться
с  ошибкой QCoreApplication::postEvent: Unexpected null receiver
 ???



Название: Re: Ошибка
Отправлено: andrew.k от Декабрь 19, 2011, 15:46
Что не получается никак разобраться
с  ошибкой QCoreApplication::postEvent: Unexpected null receiver
 ???
Сейчас медиумы набегут, все тебе починят.


Название: Re: Ошибка
Отправлено: kambala от Декабрь 19, 2011, 16:24
Что не получается никак разобраться
с  ошибкой QCoreApplication::postEvent: Unexpected null receiver
 ???
ты у себя в коде, где вызываешь postEvent, первый параметр нулём не ставишь случайно?


Название: Re: Ошибка
Отправлено: demaker от Декабрь 20, 2011, 12:48
postEvent нигде не вызываю

у меня многопоточный сервер и при одключении одного из клиентов в консоле выдается этот сообщение 

QCoreApplication::postEvent: Unexpected null receiver  ???


Название: Re: Ошибка
Отправлено: BRE от Декабрь 20, 2011, 12:58
у меня многопоточный сервер и при одключении одного из клиентов в консоле выдается этот сообщение 

QCoreApplication::postEvent: Unexpected null receiver  ???
А ты вызываешь deleteLater?
И наверное для зануленного уже объекта? Да?


Название: Re: Ошибка
Отправлено: demaker от Декабрь 20, 2011, 13:40
Да, deleteLater вызываю.
Но не для зануленнрго объекта, наверное ???


Название: Re: Ошибка
Отправлено: demaker от Декабрь 20, 2011, 13:41
Зануленный, это удаленный ???


Название: Re: Ошибка
Отправлено: BRE от Декабрь 20, 2011, 13:50
Зануленный, это удаленный ???
Перед deleteLater вставь qDebug и все увидишь:
Код
C++ (Qt)
qDebug() << obj;
obj->deleteLater()
 

Зануленный это равный 0.
Код
C++ (Qt)
QObject *obj = 0;
obj->deleteLater();
 
увидишь то же сообщение.


Название: Re: Ошибка
Отправлено: demaker от Декабрь 20, 2011, 13:57
Да нет он мне выдал TModBusThread(0x99aeac0)  ???


Название: Re: Ошибка
Отправлено: BRE от Декабрь 20, 2011, 13:59
Да нет он мне выдал TModBusThread(0x99aeac0)  ???
Значит не угадали, ищи еще что-то подобное. :)


Название: Re: Ошибка
Отправлено: demaker от Декабрь 20, 2011, 14:07
Да  :) буду пытаться найти.


Название: Re: Ошибка
Отправлено: demaker от Декабрь 22, 2011, 14:04
Отслеживаю ошибку в дебагере и она вылетает когда проходит
команду QThtread::quit(); Что это могло бы значить ???


Название: Re: Ошибка
Отправлено: Igors от Декабрь 22, 2011, 14:47
Отслеживаю ошибку в дебагере и она вылетает когда проходит
команду QThtread::quit(); Что это могло бы значить ???
Для начала перекрываете деструктор, напр
Код
C++ (Qt)
QMyThtread::~QMyThtread( void )
{
qDebug() << "destroying" << this;
}
 
Др словами - убедитесь что объект не был удален


Название: Re: Ошибка
Отправлено: demaker от Декабрь 22, 2011, 18:53
 :) попробую


Название: Re: Ошибка
Отправлено: Kyrt_God от Февраль 02, 2012, 16:31
Если еще актуально.
Код:
connect(mythread, SIGNAL(finished()), this, SLOT(removemythread()), Qt::DirectConnection)
Qt::DirectConnection используется по умолчанию если не задан. Это верно для одного потока.Для разных потоков используй другие типы соединения.

Цитировать
Qt::DirectConnection - при генерации слот получает сигнал незамедлительно.
Qt::QueuedConnection - при генерации сигнал помещается в очередь обработки событий.
Qt::BlockingQueuedConnection - при генерации сигнал помещается в очередь обработки событий. Пока слот не получит сигнал текущий поток блокируется. Данный тип соединения следует применять только для получателя в другом потоке.(Ошибочное использование данного типа соединения может привести к мертвым блокировкам(dead locks) в программе.)
Qt::AutoConnection - если отправитель и получатель находятся в одном потоке, то будет использован Qt::DirectConnection, иначе используется Qt::QueuedConnection.


Название: Re: Ошибка
Отправлено: mutineer от Февраль 02, 2012, 17:16
Оффтоп:
По умолчанию используется AutoConnection

Код
C++ (Qt)
bool QObject::connect ( const QObject * sender, const char * signal, const char * method, Qt::ConnectionType type = Qt::AutoConnection ) const