Вход/Регистрация
QT 4: программирование GUI на С++
вернуться

Саммерфилд Марк

Шрифт:

Рис. 2.20. Виджеты отображения данных в Qt.

Qt содержит несколько виджетов для ввода данных. Строка редактирования QLineEdit может ограничивать ввод данных, применяя маску ввода или функцию проверки допустимости данных. Поле редактирования QTextEdit является подклассом QAbstractScrollArea, позволяющим редактировать тексты большого объема.

Рис. 2.21. Виджеты ввода данных в Qt.

Qt содержит стандартный набор диалоговых окон для выбора пользователем цвета, шрифта, файла или для печати документа.

Рис. 2.22. Диалоговое окно выбора цвета и диалоговое окно выбора шрифта в Qt.

В системах Windows и Mac Os X по мере возможности используются «родные» диалоговые окна, а не их общие аналоги.

Рис. 2.23. Диалоговое окно для выбора файла и диалоговое окно печати документов в Qt.

Qt содержит разнообразные диалоговые окна для передачи сообщений об ошибках и других сообщений, причем они обеспечивают обратную связь с пользователем. При выполнении продолжительных операций могут использоваться диалоговый индикатор состояния процесса QProgressDialog и показанный ранее индикатор состояния процесса без обратной связи QProgressBar. Очень удобно пользоваться диалоговым окном QInputDialog, когда пользователю требуется ввести одну строку или одно число.

Рис. 2.24. Диалоговые окна для установки обратной связи с пользователем.

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

В некоторых случаях может возникнуть потребность в создании пользовательского виджета без помощи стандартных средств. В Qt это делается просто, и возможности пользовательских виджетов будут обладать таким же свойством независимости от платформы, как и возможности встроенных виджетов Qt. Пользовательские виджеты даже можно интегрировать в Qt Designer, и тогда они могут применяться так же, как и встроенные виджеты Qt. В главе 5 объясняются способы создания пользовательских виджетов.

Глава 3. Создание главных окон

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

Главное окно приложения обеспечивает каркас для построения пользовательского интерфейса приложения. Данная глава будет строиться на основе главного окна приложения Электронная таблица, показанного на рис. 3.1. В приложении Электронная таблица используются созданные в главе 2 диалоговые окна Find, Go-to-Cell и Sort (найти, перейти на ячейку и сортировать).

Рис. 3.1. Приложение Электронная таблица.

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

Создание подкласса QMainWindow

Главное окно приложения создается в виде подкласса QMainWindow. Многие из представленных в главе 2 методов также подходят для построения главных окон, поскольку оба класса QDialog и QMainWindow являются наследниками QWidget.

Главные окна можно создавать при помощи Qt Designer, но в данной главе мы продемонстрируем, как это все делается при непосредственном программировании. Если вы предпочитаете пользоваться визуальными средствами проектирования, то необходимую информацию вы сможете найти в главе «Creating a Main Window Application» (Создание приложения на основе класса главного окна) в онлайновом руководстве по Qt Designer.

Исходный код программы главного окна приложения Электронная таблица содержится в двух файлах: mainwindow.h и mainwindow.cpp. Сначала приведем заголовочный файл:

01 #ifndef MAINWINDOW_H

02 #define MAINWINDOW_H

03 #include <QMainWindow>

04 class QAction;

05 class QLabel;

06 class FindDialog;

07 class Spreadsheet;

  • Читать дальше
  • 1
  • ...
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: