Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: tumanovalex от Июль 27, 2010, 17:27



Название: Как правильно создавать сигналы и слоты в QCreator?
Отправлено: 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();
}
Однако у меня после создания новых строк в редакторе сигналов и слотов новые строки в файлах не появляются. Подскажите, пожалуйста, что я делаю неправильно.


Название: Re: Как правильно создавать сигналы и слоты в QCreator?
Отправлено: crossly от Июль 27, 2010, 17:45
ты создаешь соединение в дизайнере.... соответственно ищи его в ui.... или в файле сгенерированном uic'ом ...


Название: Re: Как правильно создавать сигналы и слоты в QCreator?
Отправлено: tumanovalex от Июль 27, 2010, 18:54
Нашел в файле mainwindow.ui. А что нужно сделать, чтобы создать из строк в Редакторе сигналов и слотов создать функции, которые бы работали? Получается, что в Редакторе сигналов и слотов реально работающие функции не создаются? Тогда зачем его использователь?


Название: Re: Как правильно создавать сигналы и слоты в QCreator?
Отправлено: crossly от Июль 27, 2010, 19:03
ну почему же.... в процессе компиляции будет вызван uic который на основании твоего mainwindow.ui создаст ui_mainwindow.h в который будет записан весь необходимый код на c++


Название: Re: Как правильно создавать сигналы и слоты в QCreator?
Отправлено: tumanovalex от Июль 27, 2010, 19:36
Странно, а у меня по кнопке Cancel не происходит закрытия окна.  Посмотрите, пожалуйста, мой проект


Название: Re: Как правильно создавать сигналы и слоты в QCreator?
Отправлено: JamS007 от Июль 27, 2010, 19:44
2 tumanovalex. Способ, которым вы пользуетесь, позволяет создать связь сигнал-слот для созданных в дизайнере обьектов, и то, вы не сможете менять слот-приемник. Если Вы хотите создать свой обработчкик для слота, пробуйте так:

1. ПКМ на обьекте созданном в дизайнере -> Перейти к слоту...
2. В диалоговом окне будут все сигналы, высылаемые этим обьектом, выберите тот, к которому хотите привязать свой слот, и дважды нажмите на нем, или один раз на кнопке "Ок".
3. В файле реализации (*.срр) и в заголовочном файле (*.h) будет автоматически создан слот, к которому уже будет подключен выбраный Вами сигнал. Qt Creator автоматически переместит Вас в файл реализации. Вам остаеться только вписать обработчик.


Название: Re: Как правильно создавать сигналы и слоты в QCreator?
Отправлено: tumanovalex от Июль 27, 2010, 21:33
Спасибо, понял.