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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Из-за чего может не срабатывать обработка нажатия кнопки?  (Прочитано 2966 раз)
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« : Апрель 08, 2015, 15:33 »

Всем привет. Создал свой класс для построения своих виджетов. В объявлении класса не указывал   Q_OBJECT. Класс создавал по следующему шаблону:
Код:
class MyClass
{
    private:
         MyClass::MyClass(MyClass *parent, unsigned type, int x, int y, int w, int h);
         ..........................
    public:
         ..........................
};
То есть не указывал родителя. Понасоздавал своих методов для этого класса. В самом конструкторе описал создание экземпляров класса в зависимости от типа type (здесь приводил QWidget к другим типам).  Все вродьбы работает. Но вот когда начал описывать события и сигналы со слотамы, то увы дело заглохло. Они работать не захотели.   Не знаю, может слоты, сигналы, и события event-ы работают лишь только тогда, когда в классе есть объявление Q_OBJECT?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #1 : Апрель 08, 2015, 15:35 »

Конечно, сигналы/слоты могут быть только у наследника QObject. В качестве исключения, слоты можно заменить на вызов методов новым коннектом в Qt5.
Записан

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

Сообщений: 98


Просмотр профиля
« Ответ #2 : Апрель 08, 2015, 15:40 »

Отнаследуйтесь минимум от QObject. Чем, кстати, мотивирован отказ наследования от QWidget? Ну и про макрос Q_OBJECT не забудьте. Про 5й Qt не помогу, слышал про то, что указал коллега выше, но сам c 4кой работаю.
Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #3 : Апрель 08, 2015, 16:07 »

спасибо за советы, будем пробовать.
Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #4 : Апрель 08, 2015, 21:22 »

Чем, кстати, мотивирован отказ наследования от QWidget?
Да просто создаем класс, который будет компилироваться на разных средах разработки (пока только 2). Не спрашивайте зачем)) свои заморочки, долго объяснять) 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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