Home · All Classes · Main Classes · Grouped Classes · Modules · Functions

Описание Класса QAbstractButton
[модуль QtGui]

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

#include <QAbstractButton>

Наследует QWidget.

Наследуется Q3Button, QCheckBox, QPushButton, QRadioButton и QToolButton.

Свойства

Открытые Функции

Открытые Слоты

Сигналы

Защищенные Функции

Дополнительные Унаследованные Члены


Подробное Описание

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

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

QAbstractButton предоставляет поддержку для командных кнопок и для контрольных. Контрольные кнопки реализуются в классах QRadioButton и QCheckBox. Командные кнопки реализуются в классах QPushButton и QToolButton; которые также реализуют поведение контрольных кнопок, если требуется.

Кнопка предоставляет изображение содержащее текст и картинку. setText() устанавливает текст; setIcon() устанавливает картинку. Если кнопка недоступна, ее изображение будет изменено чтобы показать, что кнопка "недоступна".

Если кнопка является текстовой кнопкой содержащей амперсанд (&), QAbstractButton автоматически создает горячее сочетание клавиш, называемой мнемонической, которая может изменяться в зависимости от перевода текста кнопки. Следующий пример кода создает текстовую кнопку обозначенную как "Rock & Roll" (где c подчеркнуто):

    QPushButton *button = new QPushButton(tr("Ro&ck && Roll"), this);

В данном примере сочетание клавиш Alt+C ассоциировано с созданной кнопкой, так что, когда мы нажмем Alt+C, у кнопки будет вызвана animateClick().

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

      button->setPixmap(QPixmap(":/images/print.png"));
      button->setShortcut(tr("Alt+F7"));

Все кнопки предоставляемые Qt (QPushButton, QToolButton, QCheckBox и QRadioButton) могут отображать как текст, так и картинку.

Кнопка может быть сделана кнопкой диалога по умолчанию с помощью QPushButton::setDefault() и QPushButton::setAutoDefault().

QAbstractButton представляет несколько состояний используемых кнопками:

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

QAbstractButton предоставляет пять сигналов:

  1. pressed() испускается если кнопка мыши нажата в тот момент, когда указатель мыши находится в пределах кнопки.
  2. released() испускается когда отпускается кнопка мыши.
  3. clicked() испускается если кнопка мыши нажата, а затем отпущена, когда нажимается соответствующее горячее сочетание клавиш или когда вызывается animateClick().
  4. toggled(bool) испускается когда состояние контрольной кнопки изменяется.

В подклассе QAbstractButton Вы должны, по меньшей мере, повторно реализовать paintEvent() для правильного отображения контура, текста или изображения кнопки. Вообще желательно также повторно реализовать sizeHint() и иногда hitButton() (для определения, находится-ли указатель мыши в пределах кнопки во время нажания кнопки мыши). Для кнопок, имеющих более двух состояний (подобных кнопкам с тремя состояниями), Вы также должны повторно реализовать checkStateSet() и nextCheckState().

См. также QButtonGroup.


Описание Свойств

autoExclusive : bool

Данное свойство указывает, является-ли поведение кнопки автоэксклюзивным.

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

Данное свойство не влияет на поведение кнопок принадлежащих группе кнопок.

По умолчанию autoExclusive отключено за исключением радио-кнопок.

Функции доступа:

См. также QRadioButton.

autoRepeat : bool

Данное свойство указывает, доступно-ли автоповторение.

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

Функции доступа:

checkable : bool

Данное свойство указывает, является-ли кнопка контрольной.

По умолчанию кнопка не является контрольной.

Функции доступа:

См. также checked.

checked : bool

Данное свойство указывает, является-ли кнопка установленной.

Только контрольные кнопки могут быть установленными. По умолчанию кнопка неустановлена.

Функции доступа:

См. также checkable.

down : bool

Данное свойство указывает, является-ли кнопка нажатой.

Если данное свойство равно true, то кнопка является нажатой. Сигналы pressed() и clicked() не испускаются, если вы устанавливаете данное свойство в true. По умолчанию равно false.

Функции доступа:

icon : QIcon

Данное свойство содержит иконку отображаемую на кнопке.

По умолчанию размеры иконки определяются в зависимости от стиля GUI, но они могут быть изменены с помощью свойства iconSize.

Функции доступа:

iconSize : QSize

Данное свойство содержит размеры иконки используемой данной кнопкой.

По умолчанию размеры иконки определяются в зависимости от стиля GUI.

Функции доступа:

shortcut : QKeySequence

Данное свойство содержит мнемоническую ассоциацию кнопки.

Функции доступа:

text : QString

Данное свойство содержит текст отображаемый на кнопке.

Если кнопка не имеет текста, то данное свойство возвращает пустую строку. Если текст содержит символ амперсанда (&), то для кнопки автоматически создаетс мнемоническая ассоциация. Символ следующий за '&' будет использован для создания горячего сочетания клавиш. Ранее созданная мнемоническая ассоциация будет перенастроена или очищена если мнемоническая ассициация не определяестя в текст.

Свойство не имеет значения по умолчанию.

Функции доступа:


Описание Функций-Членов

QAbstractButton::QAbstractButton ( QWidget * parent = 0 )

Создает абстрактную кнопку с родителем parent.

QAbstractButton::~QAbstractButton ()

Разрушает кнопку.

void QAbstractButton::animateClick ( int msec = 100 )   [slot]

Анимирует нажатие кнопки: кнопка сперва нажимается, а спустя msec миллисекунд отпускается (по умолчанию через 100 мс).

Все сигналы связанные с нажатием и отпусканием кнопки испускаются в соответствующие моменты времени.

Данная функция ничего не делает если кнопка недоступна.

См. также click().

void QAbstractButton::checkStateSet ()   [virtual protected]

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

См. также nextCheckState().

void QAbstractButton::click ()   [slot]

Имитирует щелчок по кнопке.

Все сигналы ассоциированные со щелчком по кнопке испускаются в соответствующем порядке. Если кнопка контрольная, то ее состояние меняется.

Данная функция ничего не делает если кнопка недоступна.

См. также animateClick().

void QAbstractButton::clicked ( bool checked = false )   [signal]

Данный сигнал испускается при активизации кнопки (т.е. когда нажатая кнопка отпускается при находении указателя мыши внутри кнопки), при нажатии горячего сочетания клавиш или при вызове click() либо animateClick(). Обратите внимание: данный сигнал не испускается при вызове setDown(), setChecked() или toggle().

У контрольной кнопки свойство checked равно true если кнопка выбрана, или false если кнопка не выбрана.

См. также pressed(), released() и toggled().

QButtonGroup * QAbstractButton::group () const

Возвращает группу, к которой принадлежит кнопка.

Если кнопка не является членом QButtonGroup, то данная функция возвращает 0.

См. также QButtonGroup.

bool QAbstractButton::hitButton ( const QPoint & pos ) const   [virtual protected]

Возвращает true если точка pos находится внутри активного прямоугольника кнопка; в противном случает возвращает false.

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

void QAbstractButton::nextCheckState ()   [virtual protected]

Данный виртуальный обработчик сообщений вызывается при нажатии кнопки. Реализация по умолчанию вызывает setChecked(!isChecked()) если кнопка isCheckable(). Данный обработчик позволяет подклассам устанавливать промежуточные состояния кнопки.

См. также checkStateSet().

void QAbstractButton::pressed ()   [signal]

Данный сигнал испускается при нажатии кнопки вниз.

См. также released() и clicked().

void QAbstractButton::released ()   [signal]

Данный сигнал испускается при отпускании кнопки.

См. также pressed(), clicked() и toggled().

void QAbstractButton::toggle ()   [slot]

Меняет состояние контрольной кнопки.

См. также checked.

void QAbstractButton::toggled ( bool checked )   [signal]

Данный сигнал испускается всякий раз, когда меняется состояние контрольной кнопки. checked равно true, если кнопка установлена, или false, если кнопка не установлена.

Это может произойти в результате действий пользователя, активизиции слота click() или вызова setChecked().

См. также checked и clicked().


Copyright © 2005 Trolltech Trademarks
Qt 4.1.0
Hosted by uCoz