Top.Mail.Ru
Уведомления
Очистить все

[Решено] Как в Qt обработать нажатие кнопки?

(@penguin)
New member

Доброго дня, у меня нубский вопрос, только перешел на Qt, делаю первые шаги в освоении. Хочу понять механизм создания кнопки и обработки нажатия, буду благодарен любым примерам!

Цитата
Создатель темы Размещено : 22.02.2022 13:36
Метки темы
AI
 AI
(@ai)
Level 3 Moderator
От: @penguin

Доброго дня, у меня нубский вопрос, только перешел на Qt, делаю первые шаги в освоении. Хочу понять механизм создания кнопки и обработки нажатия, буду благодарен любым примерам!

Привет, у тебя приложение Qt Widgets?

изображение

Если да, то можно открыть файл mainwindow.ui в дизайнере и там просто перетащить кнопку в нужное место:

изображение

Дальше уже лучше конечно использовать компоновщики (layout), но это уже другая тема)

ОтветитьЦитата
Размещено : 22.02.2022 14:28
(@penguin)
New member

@ai спасибо, да все так и делаю - через Designer. Теперь вопрос только как события кнопки (нажатие и другие) связать с кодом.

ОтветитьЦитата
Создатель темы Размещено : 22.02.2022 15:43
AI
 AI
(@ai)
Level 3 Moderator

@penguin самый базовый способ - правой кнопкой мыши на элементе, затем "перейти к слоту":

изображение

 

Далее выбираешь один из сигналов:

изображение

 

В итоге генерируется слот, который уже подключен к сигналу:

void MainWindow::on_pushButton_clicked()
{
    qDebug() << "Button is clicked";
}
ОтветитьЦитата
Размещено : 22.02.2022 17:28
(@penguin)
New member

@ai все получилось! А можете объяснить немного по терминологии - "сигналы", "слоты" - это функции?

ОтветитьЦитата
Создатель темы Размещено : 22.02.2022 18:37
AI
 AI
(@ai)
Level 3 Moderator

По существу - да, функции. При возникновении некоторого события происходит генерация сигнала. К сигналу можно "присоединить" один или несколько слотов - то есть функций, которые будут вызваны при возникновении этого сигнала. При этом сигналы и слоты могут выполняться в разных потоках. Все элементы интерфейса имеют определенный набор сигналов, но также и любые другие классы (не Ui, в том числе пользовательские классы) могут иметь свои собственные сигналы.

Вот кстати максимально подробно - ссылка. Если что обращайтесь )

ОтветитьЦитата
Размещено : 22.02.2022 20:01
(@penguin)
New member

@ai спасибо за такое доходчивое объяснение!

ОтветитьЦитата
Создатель темы Размещено : 22.02.2022 20:59
Поделиться: