Урок №6. Основы работы с GUI в Qt5

  Дмитрий Бушуев  | 

  Обновл. 1 Дек 2019  | 

 1587

 ǀ   4 

Ну что, друзья, вот мы и добрались до программирования стандартных графических приложений с помощью Qt5. В этом уроке мы попробуем создать наши первые программы, которые будут содержать такие графические элементы, как: кнопка, значок приложения, всплывающая подсказка, различные курсоры мыши, а также рассмотрим, как можно центрировать окно нашей программы и бегло коснёмся вопроса работы механизма «сигнал-слот».

Простой пример

А начнём мы с простого примера, который отображает на экране стандартное окно:

Результат выполнения программы выше:


Всплывающая подсказка


Всплывающая подсказка — это небольшой всплывающий прямоугольник с некоторым текстом, который появляется, когда вы наводите курсор на какой-нибудь элемент в приложении. В примере ниже мы создадим всплывающую подсказку для нашего основного окна:

Результат выполнения программы выше:


Иконка для приложения

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

Для отображения иконки мы используем метод setWindowIcon() и класс QIcon. Иконка представляет собой небольшой .png файл, расположенный в текущем рабочем каталоге:

Результат выполнения программы выше:


Курсор


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

Результат выполнения программы выше:


Кнопка

В следующем примере мы добавим на нашу форму самую обычную кнопку. Нажатие на кнопку приведёт к закрытию приложения. И здесь же впервые будет использовано понятие сигналов и слотов:

При нажатии на кнопку, генерируется сигнал clicked. Слот — это метод, который реагирует на сигнал. В нашем случае это будет слот quitBtn основного объекта приложения. QApp — это глобальный указатель на объект приложения. Он определён в заголовочном файле QApplication:

Результат выполнения программы выше:


Взаимодействие виджетов


Мы заканчиваем этот урок примером, который демонстрирует возможность виджетов взаимодействовать друг с другом. Код данного примера разделён на три файла.

Следующий код является заголовочным файлом, в котором мы определяем два слота и виджет lbl.

plusminus.h:

У нас есть две кнопки и виджет lbl. С помощью кнопок мы увеличиваем или уменьшаем число, отображаемое в lbl.

plusminus.cpp:

А здесь происходит соединение сигналов clicked с соответствующими слотами:

В методе OnPlus() мы определяем текущее значение в lbl. Виджет lbl отображает строковое значение, поэтому сначала его нужно преобразовать в целое число. Затем мы это число увеличиваем, конвертируем получившееся число снова в строковое значение и устанавливаем новый текст для label:

А это уже наш основной файл — main.cpp:

Результат выполнения программы выше:


Заключение

В этом уроке мы создали наши первые графические программы с помощью Qt5, а в следующем уроке мы рассмотрим подключение стандартных меню и панелей инструментов (тулбаров).


Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (6 оценок, среднее: 5,00 из 5)
Загрузка...

Комментариев: 4

  1. Аватар Sydney:

    Да, очень крутое объяснение, жду с нетерпением следующих уроков.

    1. Дмитрий Бушуев Дмитрий Бушуев:

      Спасибо. Новая статья уже передана на корректуру 🙂

  2. Аватар Игорь:

    Жду недождусь новых уроков. Спасибо огромное за Вашу работу.

    1. Дмитрий Бушуев Дмитрий Бушуев:

      Всегда пожалуйста 🙂

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *