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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как правильно создавать сигналы и слоты в QCreator?  (Прочитано 5903 раз)
tumanovalex
Гость
« : Июль 27, 2010, 17:27 »

Использую qt-sdk-win-opensource-2010.04. В редакторе сигналов и слотов создаю отправитель-сигнал-получатель-слот. Например, в моем случае btCancel-clicked-MainWindow-close(). На форме появляется связь кнопка btCancel-в центре формы close() и знак заземления. Как я понимаю, после этого в файле mainwindow.h должны появляться строки типа
Код:
private slots:
   void btCancel_clicked();
а в файле mainwindow.h строки типа:
Код:
void MainWindow::btCancel_clicked() {
   close();
}
Однако у меня после создания новых строк в редакторе сигналов и слотов новые строки в файлах не появляются. Подскажите, пожалуйста, что я делаю неправильно.
Записан
crossly
Гость
« Ответ #1 : Июль 27, 2010, 17:45 »

ты создаешь соединение в дизайнере.... соответственно ищи его в ui.... или в файле сгенерированном uic'ом ...
Записан
tumanovalex
Гость
« Ответ #2 : Июль 27, 2010, 18:54 »

Нашел в файле mainwindow.ui. А что нужно сделать, чтобы создать из строк в Редакторе сигналов и слотов создать функции, которые бы работали? Получается, что в Редакторе сигналов и слотов реально работающие функции не создаются? Тогда зачем его использователь?
Записан
crossly
Гость
« Ответ #3 : Июль 27, 2010, 19:03 »

ну почему же.... в процессе компиляции будет вызван uic который на основании твоего mainwindow.ui создаст ui_mainwindow.h в который будет записан весь необходимый код на c++
Записан
tumanovalex
Гость
« Ответ #4 : Июль 27, 2010, 19:36 »

Странно, а у меня по кнопке Cancel не происходит закрытия окна.  Посмотрите, пожалуйста, мой проект
Записан
JamS007
Гость
« Ответ #5 : Июль 27, 2010, 19:44 »

2 tumanovalex. Способ, которым вы пользуетесь, позволяет создать связь сигнал-слот для созданных в дизайнере обьектов, и то, вы не сможете менять слот-приемник. Если Вы хотите создать свой обработчкик для слота, пробуйте так:

1. ПКМ на обьекте созданном в дизайнере -> Перейти к слоту...
2. В диалоговом окне будут все сигналы, высылаемые этим обьектом, выберите тот, к которому хотите привязать свой слот, и дважды нажмите на нем, или один раз на кнопке "Ок".
3. В файле реализации (*.срр) и в заголовочном файле (*.h) будет автоматически создан слот, к которому уже будет подключен выбраный Вами сигнал. Qt Creator автоматически переместит Вас в файл реализации. Вам остаеться только вписать обработчик.
Записан
tumanovalex
Гость
« Ответ #6 : Июль 27, 2010, 21:33 »

Спасибо, понял.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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