В среде Qt на Raspberry Pi можно создавать не только элементы отображения, как было показано в предыдущем материале, но и элементы взаимодействия с пользователем, например, кнопки.

В этом примере покажем, как создать обычную кнопку в Qt.
Итак, сначала нужно запустить Qt Creator. После создания проекта откроется окно редактирования. Разверните Forms, где можно увидеть в списке mainwindow.ui. Дважды щелкните по mainwindow.ui, после чего откроется вкладка Design.

Перетащите элемент Push Button из раздела Buttons в диалоговое окно, как показано на изображении выше. Щелкните правой кнопкой мыши на Push Button и путем выбора опции Change text можете изменить текст на кнопке.

Каждый компонент в конструкторе представлен как объект с кодом в редакторе, и каждый объект имеет определенное имя по умолчанию. Можно изменить имя объекта в соответствии с желаниями пользователя, это также необходимо для удобства при использовании слишком большого количества кнопок или других компонентов. Щелкните правой кнопкой мыши на Push Button и, выбрав опцию Change object name, можете изменить имя объекта кнопки.

В данном случае имя объекта было изменено на button_1, и текст, отображаемый на кнопке, был изменен на Say hello. Как только имя объекта изменяется, такое же изменение может быть видно в других местах среды, как показано на рисунке ниже.

В следующих шагах рассмотрим, как присвоить кнопке конкретную функцию. В Qt существуют термины «Сигналы» (Signals) и «Слоты» (Slots). Слоты в своей основе представляют функции, которые связаны с объектом, а сигналы отправляются для выполнения этих функций всякий раз, когда объект активируется. Например, когда пользователь нажимает на кнопку, отправляется сигнал к соответствующему слоту функции. Чтобы создать слот и сигнал, соответствующий объекту, кликните правой кнопкой мыши по кнопке и выберите опцию Go to Slot.

Пользователю будет предоставлен список сигналов, соответствующих типу объекта Push Button. Так как кнопка обычно используется для нажатия, то следует выбрать сигнал clicked ().

После нажатия на кнопку ОК вы будете немедленно направлены в окно редактора, где соответствующий слот может быть виден в коде. В данном случае это _on_button_1_clicked ().

Эта функция будет вызываться всякий раз, когда объект кнопки с именем button_1 будет нажат. Чтобы проверить это, пользователь может написать простое выражение printf (), как показано на следующем рисунке. Не забудьте добавить заголовочный файл stdio.h.

Программирование на этом завершается. Теперь просто сохраните проект.

Скомпилируйте и запустите программу. Теперь всякий раз при нажатии кнопки Say Hello будет появляться строка HELLO USER.

© digitrode.ru