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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: нажатие на QPushButton  (Прочитано 28075 раз)
Denjs
Гость
« Ответ #15 : Сентябрь 21, 2010, 16:42 »

Цитировать
вы лучше объясните - чем вас так пугает сигнал-слотовый механизм?
только без смеха)
я вот знаю, что сигнал будет от кнопки. а вот где слот создавать не пойму. в отдельном классе? или можо его просто обьявить? не пойму и все.
ну вот конкретно в моем случае. есть кнопка на форме и QLineEdit. мне нужно просто при нажатии на кнопку записать текст из QLineEdit в переменную стринг. и все. но не пойму я, где слот создавать.
можно смеяться)
>>а вот где слот создавать не пойму. в отдельном классе?
Слот - это метод класса который вызывается когда испускается сигнал, который подключили к данному слоту. Слоты определяются в секции slots при определении класса.
Где определять слот?  В любом классе. Хотите - в том-же, на который вы натягиваете .ui, хотите - в любом другом. Можно даже одновременно - подключить один сигнал к слотам 2-х обхъектов. и они оба будут вызываться при нажатии на кнопку.  Можно динамически переподключить к другому объекту, на другой слот.  (чуете мощь? чуете насколько VS/MFC и идеология "обработчика нажатия" убоги по сравнению с этим? )))) Смеющийся
« Последнее редактирование: Сентябрь 21, 2010, 16:44 от Denjs » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #16 : Сентябрь 21, 2010, 16:47 »

посмотрите примеры, идущие с Qt, многое прояснится.
слот создаете в классе, который будет являться контроллером формы. Обычно используется след схема:
есть класс Ui::MyForm, который вы подключаете в хедере "ui_myform.h" и класс MyForm (наследующийся от QWidget/QMainWindow/QDialog), который содержит указатель на Ui::MyForm (или наследуется от него, или содержит как член класса). Этот 2й класс и управляет логикой поведения ГУИ и содержит необходимые сигналы и слоты, подключенные к элементам в Ui::MyForm

Denjs
что-то по беглому взгляду вся эта "мощь" слизана с обжектив-си:)
Записан
Denjs
Гость
« Ответ #17 : Сентябрь 21, 2010, 17:36 »

Denjs
что-то по беглому взгляду вся эта "мощь" слизана с обжектив-си:)
вот уж не знаю чем вдохновлялись Троллтеч при создании QT, но согласитесь - получилось клёво )
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #18 : Сентябрь 21, 2010, 17:38 »

ну многие места разочаровывают - к примеру интерфейсы (а их реализация - это вооще жесть, там используются фичи с++, о которых я даже не слышал)
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #19 : Сентябрь 22, 2010, 12:31 »

В классе пишешь:
Код
C++ (Qt)
private slots:
   void yourSlot ()
   {
       //some code
   }
 
И коннектишь на него сигнал нажатия кнопки. И все. Советую почитать книжку по Кьюту.
Записан

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


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