Взаимодействие с пользователем

Второй пример показывает возможности взаимодействия пользователя с про­граммой. Приложение представляет собой кнопку, которую пользователь может на­жать и тогда приложение закончит свою работу. Исходный код этой программы очень напоминает исходный код программы Hello, но здесь вместо QLabel использу­ется QPushButton в качестве главного виджета и добавляется код, обеспечивающий реакцию программы на действие пользователя (нажатие кнопки).

Исходный код этого приложения находится на компакт-диске в файле /ехат-ples/chap01/quit/quit. срр. Ниже приводится содержимое этого файла:

001 #include <QAapplication>

002 #include <APushButton.h>

003 int main(int argc, char *argv[])

004 { 005 006 007 008 0 9 010 011 }

QApplication app(argc, argv); QPushButton *button = new QPushButton("Quit"); QObject: :connect(button, SIGNAL(clickedO), &app, SLOT(quitO)); button->show(); return app.execO;

Виджеты Qt генерируют сигналы} в ответ на выполнение пользователем како­го-то действия или изменение состояния. Например, QPushButton генерируют сигнал clicked () при нажатии пользователем кнопки. Сигнал может быть связан с функцией (называемой слотом в данном контексте) для автоматического ее выполнения при получении данного сигнала. В нашем примере мы связываем сигнал кнопки clicked() со слотом quit() объекта приложения QApplication. Макросы SI6NALO и SL0T() являются частью синтаксиса; более подробно они объясняются в следующей главе.


Рис. 1.3. Приложение Quit (завершить работу)

Теперь мы построим приложение. Мы предполагаем, что вами создан каталог quit и в нем находится файл quit. срр. Выполните команду qmake из каталога quit для формирования файла проекта, затем используйте полученный файл для создания файла makefile:

qmake -project qmake quit.pro

Теперь постройте приложение и запустите его на выполнение. Если вы нажмете кнопку quit или клавишу пробела на клавиатуре (она также приводит к нажатию этой кнопки), приложение завершит свою работу.


<< назад вперед >>