Научим Qt приложение реагировать на наши действия

Думаю вы согласитесь, что возможность программы реагировать на действия пользователя, это огромное приимущество. В наши дни ни одна «вменяемая» утилита не обходится без этого свойства.
Рассмотрим простейшую утилиту, которая прекращает свою работу при клике по клавише выход.

Прежде всего оприделимся, что наша программа будет состоять только из одной кнопки))

Я использую linux так-что для разбора примеру буду компилировать в консоли. Если вы предпочитаете Qt Creator, пользуйтесь им.

Дабы не засорять голову вам и себе я подключу только один заголовочный файл:

#include <QtGui>

Теперь приведу функцию main :

int main(int argc, char *argv[]){
    QApplication app(argc, argv);
    QPushButton *button = new QPushButton(«Quit»);
    QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit()));
    button->show();
    return app.exec();
}

Тут сначала создаётся главный объект приложения, затем кнопка Quit. Думаю с этим ни у кого проблем не возникнет..
После этих манипуляций необходимо соеденить сигнал клика по кнопке с завершением работы приложения. Это делается так:

QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit()));
Параметры указываются в таком порядке: объект инициализирующий событие, сигнал, объект над которым будет выполнено действие, действие.
Как вы уже наверное заметили сигнал обозначается при помощи функции SIGNAL(), а действие над объектом (выполняемая при наступлении сигнала функция — слот) при помощи SLOT(). В данном примере мы связываем сигнал клица по кнопке с выходом из приложения.

Откомпилировать приложение можно так:

qmake -project

qmake

make

Ну или кликните по большой зелёной кнопке «плей» в криэйторе… (ну или F5 клацните)
Теперь запустите сгенерированный файл и вы увидите что-то вроде этого:

 

Вот и всё…

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий