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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QObject::connect крешит на Windows  (Прочитано 7061 раз)
names
Гость
« : Апрель 17, 2010, 18:55 »

Привет Qt гуру

Я стараюсь создать класс, который наследует QComboBox и обработать сигнал currentIndexChanged(int)

Код:
class ComboBox_impl : public QComboBox
{
Q_OBJECT
public:

ComboBox_impl()
{
connect(this, SIGNAL(currentIndexChanged(int)), SLOT(doProcessIndexChanged(int)));
}

virtual ~ComboBox_impl()
{
}

public Q_SLOTS:
void doProcessIndexChanged(int)
{
}
};

Под Мак ОС 10.6.2 работает отлично, а под Windows XP генерит исключение "Access denied" на строчке

Код:
connect(this, SIGNAL(currentIndexChanged(int)), SLOT(doProcessIndexChanged(int)));

Версия Qt на Windows 4.6.2, VS 2008

Жду помощи,
Н.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Апрель 17, 2010, 19:10 »

выложи проект, воспроизводящий багу
кстати было бы неплохо вызвать коструктор базового класса, мало ли
« Последнее редактирование: Апрель 17, 2010, 19:15 от Авварон » Записан
names
Гость
« Ответ #2 : Апрель 18, 2010, 10:57 »

Вот в том все и дело, что сам проект не могу... Вот простой тестовый проектик с таким классом работает, а рабочий, где этот класс в либе, которую подключает к себе прога не работает  В замешательстве
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Апрель 18, 2010, 11:24 »

ну в этом коде с виду ошибок нет
что дебаггер показывает?
потоки есть?
Записан
SABROG
Гость
« Ответ #4 : Апрель 18, 2010, 11:31 »

Скорее всего дело не в connect, а в памяти. Либо стек закончился, либо где-то утечка памяти.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Апрель 18, 2010, 13:34 »

ты не вызывал родительский конструктор. Возможно, это влияет.

Код
C++ (Qt)
ComboBox_impl() : QComboBox()
{
 
}
 
Записан
names
Гость
« Ответ #6 : Апрель 19, 2010, 09:31 »

Вот сама еррора:
Unhandled exception at 0x6718c3d6 in minihost.exe: 0xC0000005: Access violation reading location 0x00000010.

Записан
Amigo_sa
Гость
« Ответ #7 : Апрель 19, 2010, 11:10 »

Под Мак ОС 10.6.2 работает отлично, а под Windows XP генерит исключение "Access denied" на строчке

Код:
connect(this, SIGNAL(currentIndexChanged(int)), SLOT(doProcessIndexChanged(int)));

Версия Qt на Windows 4.6.2, VS 2008

Жду помощи,
Н.
наверное, из-за того, что не вызван базовый конструктор, this неопределен... но я неуверен, надо проверить.
Записан
zenden
Гость
« Ответ #8 : Апрель 19, 2010, 13:21 »

Вот сама еррора:
Unhandled exception at 0x6718c3d6 in minihost.exe: 0xC0000005: Access violation reading location 0x00000010.




банальное обращение к нулевому указателю. Уверен, что это ошибка в вашем коде, а не qt
Записан
johnny
Гость
« Ответ #9 : Апрель 20, 2010, 13:16 »

ты не вызывал родительский конструктор. Возможно, это влияет.

Родительский конструктор по умолчанию будет вызван автоматом
Записан
names
Гость
« Ответ #10 : Май 13, 2010, 13:18 »

Либы поменял на те, которые на сайте нокии лежат и все заработало. У меня перед этим были собственноручно собранные  Непонимающий
Записан
niXman
Гость
« Ответ #11 : Май 13, 2010, 13:26 »

не в тему конечно, но позвольте поинтересоваться. в чем смысл такой записи:
Цитировать
public Q_SLOTS:
?
спасибо.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #12 : Май 13, 2010, 16:58 »

не в тему конечно, но позвольте поинтересоваться. в чем смысл такой записи:
Цитировать
public Q_SLOTS:
?
спасибо.


Цитировать
Q_SLOTS
Use this macro to replace the slots keyword in class declarations, when you want to use Qt Signals and Slots with a 3rd party signal/slot mechanism.
The macro is normally used when no_keywords is specified with the CONFIG variable in the .pro file, but it can be used even when no_keywords is not specified.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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