Виджеты
Виджеты - это исходные элементы для создания пользовательского интерфейса в Qt. Виджеты могут отображать данные и информацию о состоянии, получить ввод от пользователя и предоставлять контейнер для других виджетов, которые должны быть сгруппированы. Виджет, не встроенный в родительский виджет, называется окном.
Класс QWidget предоставляет базовую возможность для отрисовки на экране и для обработки событий пользовательского ввода. Все элементы пользовательского интерфейса, предоставляемые Qt, являются подклассами QWidget или используются в сочетании с подклассом QWidget. Создание пользовательских виджетов выполняется наследованием от QWidget или подходящего подкласса и переопределения виртуальных обработчиков событий.
Компоновки
Компоновки - элегантный и гибкий способ для автоматического размещения дочерних виджетов внутри контейнера. Каждый виджет сообщает компоновщику свои требования к размеру посредством свойств sizeHint и sizePolicy, а компоновщик соответственно распределяет доступное пространство.
Qt Designer - мощный инструмент для интерактивного создания и размещения виджетов в компоновках.
Стили виджета
Стили рисуют от имени виджетов и инкапсулируют внешний вид и поведение графического пользовательского интерфейса. Встроенные виджеты Qt используют его для выполнения почти всех операций рисования, гарантируя сходство с аналогичными родными виджетами.
Таблицы стилей Qt - мощный механизм, который позволяет настраивать внешний вид виджетов, в дополнение к тому, что уже доступен с помощью создания подклассов QStyle.
Классы виджетов
В следующих разделах приводятся классы виджетов. Несколько примеров можно посмотреть в Галерее виджетов Qt.
Основные виджеты
Основные виджеты (элементы управления), например, кнопки, выпадающие списки и полосы прокрутки, спроектированы для непосредственного использования.
QCheckBox | Флажок с текстовой меткой |
QComboBox | Сочетание кнопки и всплывающего списка |
QCommandLinkButton | Командная кнопка-ссылка в стиле Vista |
QDateEdit | Виджет для редактирования даты, основанный на виджете QDateTimeEdit |
QDateTimeEdit | Виджет для редактирования даты и времени |
QDial | Элемент управления, проградуированный по окружности (наподобие спидометра или потенциомера) |
QDoubleSpinBox | Виджет счетчика, принимающего значения с плавающей точкой |
QFocusFrame | Рамка фокуса, которая может отображаться вокруг стандартной области прорисовки виджета |
QFontComboBox | Выпадающий список, который позволяет пользователю выбрать семейство шрифтов |
QLCDNumber | Отображает число с помощью цифр, имитирующих ЖК-индикатор |
QLabel | Отображает текст или рисунок |
QLineEdit | Однострочный редактор текста |
QMenu | Виджет меню, используемый в панели меню, контекстном меню и других всплывающих меню |
QProgressBar | Горизонтальный или вертикальный индикатор выполнения |
QPushButton | Командная кнопка |
QRadioButton | Радио-кнопка с текстовой меткой |
QScrollArea | Область прокрутки на другом виджете |
QScrollBar | Вертикальная или горизонтальная полоса прокрутки |
QSizeGrip | Область захвата для изменения размера окна верхнего уровня |
QSlider | Вертикальный или горизонтальный ползунок (slider) |
QSpinBox | Виджет счетчика |
QTabBar | Панель вкладок для использования, например, в диалогах со вкладками |
QTabWidget | Стек виджетов со вкладками |
QTimeEdit | Виджет для задания времени, основанный на виджете QDateTimeEdit |
QToolBox | Вертикальный набор элементов виджетов со вкладками |
QToolButton | Кнопка быстрого доступа к командам или настройкам, обычно используется в QToolBar |
QWidget | Базовый класс для всех объектов интерфейса пользователя |
Расширенные виджеты
Расширенные виджеты ГПИ, например, виджеты со складками и индикаторы выполнения, предоставляют более сложные элементы управления пользовательским интерфейсом.
QCalendarWidget | Виджет помесячного календаря, позволяющий пользователю выбрать дату |
QColumnView | Реализация идеи модель/представление в виде постолбцового представления |
QDataWidgetMapper | Отображение области данных модели на виджеты |
QDesktopWidget | Доступ к информации об экране в многоэкранных системах |
QListView | Представление списка или пиктограмм в модели |
QMacCocoaViewContainer | Виджет для Mac OS X, который может использоваться для обертывания произвольных представлений Cocoa (т.е. подклассов NSView) и вставки их в иерархии Qt |
QMacNativeWidget | Виджет для Mac OS X, который предоставляет способ помещения виджетов Qt в иерархии Carbon или Cocoa, в зависимости от того, как Qt была сконфигурирована |
QTableView | Реализация по умолчанию модели/представления таблицы |
QTreeView | Реализация модели/представления по умолчанию для представления дерева |
QUndoView | Отображает содержимое QUndoStack |
QWSEmbedWidget | Предоставляет возможность встраивать виджеты верхнего уровня в Qt для встраиваемых Linux-систем |
QWebView | Виджет, используемый для просмотра и редактирования веб-документов |
QX11EmbedContainer | Виджет-контейнер XEmbed |
QX11EmbedWidget | Виджет-клиент XEmbed |
Phonon::VideoWidget | Виджет, используемый для отображения видео |
| |
Виджеты упорядочения
Такие классы, как разделители, панели вкладок, группы кнопок и т.д. используются для упорядочивания и группировки примитивов ГПИ в более сложных приложениях и диалогах.
Абстрактные классы виджетов
Абстрактные классы виджетов являются базовыми классами. Они не используются в качестве самостоятельных классов, но предоставляют функциональность при создании их наследников.
QAbstractButton | Абстрактный базовый класс виджета кнопки, реализующий общие функции кнопок |
QAbstractScrollArea | Прокручиваемая область с полосами прокрутки, отображаемыми по требованию |
QAbstractSlider | Целое значение из диапазона |
QAbstractSpinBox | Счетчик и строка редактирования для отображения значения счетчика |
QDialog | Базовый класс для диалоговых окон |
QFrame | Базовый класс для виджетов, способных иметь рамку |