четверг, 7 февраля 2013 г.

сделать item combobox неактивным

Элемент управления выполняет действие или отображает информацию пользователю. Примеры элементов управления - кнопки нажатия, флажки и заголовки секций в табличных и древовидных представлениях. Элементы управления необязательно являются завершенными виджетами как, например кнопки нажатия, но могут также быть частью виджетов таких как вкладки набора вкладок (tab bar) и ползунки полосы прокрутки. Они отличаются от простейших элементов тем, что не являются пассивными, но выполняют функцию во взаимодействии с пользователем. Элементы управления, состоящие из нескольких элементов, часто используют стиль для вычисления ограничивающих элементы прямоугольников. Доступные субэлементы определены в перечислении . Это перечисление используется только для вычисления ограничивающих прямоугольников и субэлементы не являются такими же графическими элементами способными быть отрисованными как простейшие, управляющие и сложные элементы.

Элементы управления

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

Простейшие элементы

Описание класса содержит список этих элементов и их роли в стайлинге виджетов (styling widgets). Мы увидим как их использовать когда применим стиль к отдельным виджетам.

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

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

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

Not all drawing is performed by the implementation; the items in item views are drawn by (classes that inherit ). Заголовки отображений элементов отрисовываются стилем неподвижными. In this document we only describe how to implement a subclass, so we do not treat item view related parts of the drawing. In order to get absolute control over the painting of widgets, you need to implement your own delegates for the item views. Обратите внимание, что делегаты должны быть установлены программно для каждого отдельного виджета (т.е., стандартные делегаты не могут быть предоставлены как плагины (plugins)). This architecture has mainly been chosen for performance reasons.

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

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

API содержит отрисовывающие виджеты функции, статические вспомогательные функции (static helper functions) для общих и сложных задач (например, вычисления позиций рукояток ползунка) и функций для разнообразных вычислений необходимых во время отрисовки (например, для вычисления собственных размеров виджетов). Стиль также помогает некоторым виджетам размещать их содержимое. В дополнение, он создает содержащий несколько для отрисовки.

Для разработки виджетов, поддерживающих стили (т.е. виджетов, которые согласовываются со стилем, в котором отрисовываются), вам необходимо отрисовывать их используя текущий стиль. Данный документ покажет как виджеты отрисовывают себя и какие возможности дает им стиль.

Часть данного документа, что не имеет отношения к применению стиля к отдельным виджетам, следует читать последовательно поскольку следующие разделы имеют тенденцию зависеть от предыдущих. Описание виджетов может быть использовано как описание пока реализуется стиль. Как бы там ни было, в отдельных случаях вы можете обратиться за справкой к исходному коду Qt. Последовательность в процессе создания стиля (styling process) должна проясниться после прочтения этого документа, что поможет в локализации существенного (relevant) кода.

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

Стили (классы, наследуемые от ) рисуют от имени виджетов и инкапсулируют внешний вид и поведение графического интерфейса пользователя. В Qt встроено несколько стилей (например, стили windows и motif). Другие стили доступны только на определенных платформах (например, стиль windows XP). Пользовательские стили доступны как подключаемые модули (plugins) или через создание в приложении экземпляра класса стиля и установку его с помощью ().

Реализация стилей и виджетов, поддерживающих стили

    ·  ·  ·  ·  ·

Последние темы на форуме:

Qt 4.3: Implementing Styles and Style Aware Widgets | Документация

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

Отправить комментарий