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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Сигнал в дочернем классе  (Прочитано 6392 раз)
Edynchik
Гость
« : Июнь 18, 2013, 14:11 »

Добрый день. Создал дочерний класс от QMainwindow(который рисует форму), в нем написал макрос Q_OBJECT, но слоты не реагируют на сигналы.В чем может быть дело?Спасибо
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #1 : Июнь 18, 2013, 14:13 »

Код, можно посмотреть
Записан
mutineer
Гость
« Ответ #2 : Июнь 18, 2013, 14:24 »

Дело в неправильном коде
Записан
Edynchik
Гость
« Ответ #3 : Июнь 18, 2013, 14:24 »

вот проект...
Записан
mutineer
Гость
« Ответ #4 : Июнь 18, 2013, 14:30 »

и что не работает?
Записан
Edynchik
Гость
« Ответ #5 : Июнь 18, 2013, 14:31 »

Слот таймера,кнопок...
Записан
mutineer
Гость
« Ответ #6 : Июнь 18, 2013, 14:32 »

Я вижу только одного наследника QMainWindow и у него нету слота для таймера. Скажи человеческим языком что у тебя не вызывается
Записан
Edynchik
Гость
« Ответ #7 : Июнь 18, 2013, 14:35 »

ну я нажиаю кнопку, по ней отрисовывается график,спинбокс,лсд, и две кнопки...совственно слот таймера не работает, слоты кнопок тоже...
Записан
mutineer
Гость
« Ответ #8 : Июнь 18, 2013, 14:37 »

Код:
    void timeoutFifo();
    void cyrcle_Buffer(QByteArray ba,int pos);
    void startFifo();
    void stopFifo();
    void draw();
    bool valueChange(int cnt);

Эти слоты? они не работают потому что объект уже уничтожен
Записан
Edynchik
Гость
« Ответ #9 : Июнь 18, 2013, 14:41 »

Ох ты...когда то я с этим сталкивался, выходя из функции кноки на главной форме объект уничтожается...
Записан
mutineer
Гость
« Ответ #10 : Июнь 18, 2013, 14:45 »

Это называется "время жизни объектов в С++"
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #11 : Июнь 18, 2013, 14:49 »

Код:

void MainWindow::on_pushButton_clicked()
{
    Oscillograph oscillo(0,"Пример1",1,11,this);
    oscillo.show();

//    Oscillograph oscillo1(2,"Пример1",3,9,this);
}


Сделай oscillo глобальной переменной для MainWindow.
Код:
 oscillo = new  Oscillograph(...this);
Записан
Edynchik
Гость
« Ответ #12 : Июнь 18, 2013, 15:14 »

Спасибо, только осталось одно но: когда пишу в mainwindow.h Oscillograph *oscillo; выдает запрещение декларации без типа
Записан
mutineer
Гость
« Ответ #13 : Июнь 18, 2013, 15:17 »

include забыл, небось
Записан
Edynchik
Гость
« Ответ #14 : Июнь 18, 2013, 15:20 »

не, в mainwindow.h есть #include oscillograph.h...
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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