Qt:Документация 4.3.2/qabstractbutton

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск
40px Внимание: Актуальная версия перевода документации находится здесь

__NOTOC__

Image:qt-logo.png

Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Image:trolltech-logo.png

Содержание

[править] Описание класса QAbstractButton
[модуль QtGui ]

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

 #include <QAbstractButton>

Наследует QWidget.

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

[править] Свойства

  • 56 свойства унаследованных от QWidget
  • 1 свойство унаследованное от QObject

[править] Открытые функции

  • 201 открытых функций унаследованных от QWidget
  • 29 открытых функций унаследованных от QObject
  • 12 открытых функций унаследованных от QPaintDevice

[править] Открытые слоты

  • 19 открытых слотов унаследованных от QWidget
  • 1 открытый слот унаследованный от QObject

[править] Сигналы

  • 1 сигнал унаследованный от QWidget
  • 1 сигнал унаследованный от QObject

[править] Защищенные функции

  • 38 защищенных функций унаследованных от QWidget
  • 7 защищенных функций унаследованных от QObject
  • 1 защищенная функция унаследованна от QPaintDevice

[править] Дополнительные унаследованные члены

  • 4 статических открытых члена унаследованных от QWidget
  • 5 статических открытых члена унаследованных от QObject
  • 1 защищенный слот унаследован от QWidget

[править] Подробное описание

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

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

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

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

Если кнопка является текстовой кнопкой со строкой содержащей амперсанд ('&'), QAbstractButton автоматически создает сочетание горячих клавиш, например:

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

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

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

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

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

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

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

  • isDown() показывает, что кнопка нажата.
  • isChecked() показывает, включена ли кнопка. Только тригерные кнопки могут быть включены и выключены (см. ниже).
  • isEnabled() показывает, что кнопка может быть нажата пользователем.
  • setAutoRepeat() устанавливает, происходит ли автоповтор, если пользователь удерживает ее нажатой. Функции autoRepeatDelay и autoRepeatInterval определяют, как автоповтор происходит.
  • setCheckable() устанавливает, является ли кнопка тригерной или нет.

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

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

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

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

См. также QButtonGroup.


[править] Описание свойств

[править]
autoExclusive : bool

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

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

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

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

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

  • bool autoExclusive () const
  • void setAutoExclusive ( bool )

См. также QRadioButton.

[править]
autoRepeat : bool

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

Если автоповтор разрешен, то сигналы pressed(), released(), и clicked() посылаются через равные промежутки времени пока кнопка нажата. По умолчанию свойство autoRepeat отключено. Начальная задержка и период автоповтора определяется в милисекундах функциями autoRepeatDelay и autoRepeatInterval.

Замечание: Если кнопка нажата при помощи комбинации корячих клавиш, то автоповтор разрешен и время управляется системой, а не этим классом. Сигналы pressed(), released(), и clicked() будут посылаться как и обычно.

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

  • bool autoRepeat () const
  • void setAutoRepeat ( bool )

[править]
autoRepeatDelay : int

Это свойство содержит начальную задержку автоповтора.

Если autoRepeat разрешен, то autoRepeatDelay определяет начальную задержку в милисекундах перед автоповтором.

Это свойство было введено в Qt 4.2.

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

  • int autoRepeatDelay () const
  • void setAutoRepeatDelay ( int )

См. также autoRepeat and autoRepeatInterval.

[править]
autoRepeatInterval : int

Это свойство содержит интервал автоповтора.

Если autoRepeat разрешен, то autoRepeatInterval определяет длительность интервала между повторами в милисекундах.

Это свойство было введено в Qt 4.2.

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

  • int autoRepeatInterval () const
  • void setAutoRepeatInterval ( int )

См. также autoRepeat and autoRepeatDelay.

[править]
checkable : bool

Данное свойство указывает, будет-ли кнопка тригерной (с фиксацией).

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

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

  • bool isCheckable () const
  • void setCheckable ( bool )

См. также checked.

[править]
checked : bool

Данное свойство указывает, является-ли кнопка включеной (нажатой и зафиксированой).

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

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

  • bool isChecked () const
  • void setChecked ( bool )

См. также checkable.

[править]
down : bool

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

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

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

  • bool isDown () const
  • void setDown ( bool )

[править]
icon : QIcon

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

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

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

  • QIcon icon () const
  • void setIcon ( const QIcon & icon )

[править]
iconSize : QSize

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

По умолчанию размеры иконки определяются в зависимости от стиля GUI. Это максимальный размер для иконок. Иконки меньших размеров не будут увеличиваться.

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

  • QSize iconSize () const
  • void setIconSize ( const QSize & size )

[править]
shortcut : QKeySequence

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

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

  • QKeySequence shortcut () const
  • void setShortcut ( const QKeySequence & key )

[править]
text : QString

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

Если кнопка не имеет текста, то данное свойство возвращает пустую строку.

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

Текста по умолчанию нет .

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

  • QString text () const
  • void setText ( const QString & text )

[править] Описание функций-членов

[править]
QAbstractButton::QAbstractButton ( QWidget * parent = 0 )

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

[править]
QAbstractButton::~QAbstractButton ()

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

[править]
void QAbstractButton::animateClick ( int msec = 100 ) [slot]

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

Повторный вызов этой функции до отпускания кнопки будет сбрасывать таймер отпускания.

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

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

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

[править]
void QAbstractButton::checkStateSet () [virtual protected]

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

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

[править]
void QAbstractButton::click () [slot]

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

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

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

См. также 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().

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

Например, слот, который реагирует на сигналы, посылаемые вновь нажатой кнопкой, но игнорирующий сигналы от кнопок, которые были отжаты может быть реализован используя следующий шаблон:

 void MyWidget::reactToToggle(bool checked)
 {
    if (checked) {
       // Examine the new button states.
       ...
    }
 }

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

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


Copyright © 2007 Trolltech Trademarks
Qt 4.3.2