Программирование на C++ с использованием библиотеки Qt4



         

Листинг 7. Меню и строка состояния (файл examples-qt/02/02.cpp) - часть 2


  • (1-2) Подключили модуль QtGui и свой заголовочный файл.
  • (4-35) Конструктор главного окна.
  • (6-7) Определили кодек.
  • (9-11) Создали действие "О программе", задали для него текст подсказки и связали с функцией about, реализованной ниже.
  • (13-16) Создали действие "Выход", задали для него текст подсказки и клавиатурное сокращение, связали его с функцией close, выполняющей закрытие окна (эта функция определена в базовом классе).
  • (18-21) Создали меню "Файл", состоящее из двух пунктов, с разделителем между ними.
  • (23-25) Создали три текстовые метки, в качестве родительского элемента указали строку состояния.
  • (27-30) Убрали из строки состояния маркер для изменения размеров окна (иначе правая текстовая метка не доходит до правого края окна, что выглядит не слишком эстетично) и разместили в строке три текстовые метки. Указали для первой коэффициент растяжимости, в два раза больший, чем для остальных.
  • (32) Вывели в первое поле строки состояния приветствие.
  • (34)Указали, что метод mouseMoveEvent будет вызываться при движении указателя мыши, даже если её кнопки не нажаты.
  • (38-42) Виртуальный метод, выполняемый при изменении размеров окна. Узнаём новые размеры с помощью функции QResizeEvent::size() и выводим их во второе поле строки состояния. Для преобразования целых значений к типу QString используем метасимволы %1 и %2 в строке шаблона (41), а также функцию QString::arg, которая замещает их строковым представлением своего аргумента и возвращает результат типа QString.
  • (44-48) Виртуальный метод, вызываемый при перемещении указателя мыши. Новые координаты указателя возвращает функция QMouseeEvent::pos(). Мы выводим их в третье поле строки состояния.
  • (50-55) Функция about выполняется при выборе пункта меню Файл | О программе. Для вывода на экран информации используется метод about, определённый для класса QMessageBox. Обратите внимание, что для форматирования текста используется язык разметки HTML.
  • (57-73) При закрытии окна программы (по команде меню Выход, нажатием комбинации клавиш Alt+F4 или с помощью крестика в верхнем правом углу окна) исполняется виртуальный метод closeEvent (67), в котором мы вызываем функцию askOnClose (57). Последняя выводит на экран запрос на подтверждение, используя метод question класса QMessageBox. Если пользователь отвечает утвердительно, то окно зарывается (69), иначе действие отменяется (71) и выполнение программы продолжается.
  • Чуть позже мы узнаем, как использовать программу




    Содержание  Назад  Вперед