Qt:Документация 4.3.2/qabstractbutton
Материал из Wiki.crossplatform.ru
Внимание: Актуальная версия перевода документации находится здесь |
__NOTOC__
Главная · Все классы · Основные классы · Классы по группам · Модули · Функции |
Описание класса QAbstractButton
[модуль QtGui ]
Класс QAbstractButton - это абстрактный базовый класс для виджетов-кнопок предоставляющий функциональные возможности обычные для кнопок. Далее...
#include <QAbstractButton>
Наследует QWidget.
Наследуется Q3Button, QCheckBox, QPushButton, QRadioButton, и QToolButton.
Свойства
|
Открытые функции
- QAbstractButton ( QWidget * parent = 0 )
- ~QAbstractButton ()
- bool autoExclusive () const
- bool autoRepeat () const
- int autoRepeatDelay () const
- int autoRepeatInterval () const
- QButtonGroup * group () const
- QIcon icon () const
- QSize iconSize () const
- bool isCheckable () const
- bool isChecked () const
- bool isDown () const
- void setAutoExclusive ( bool )
- void setAutoRepeat ( bool )
- void setAutoRepeatDelay ( int )
- void setAutoRepeatInterval ( int )
- void setCheckable ( bool )
- void setDown ( bool )
- void setIcon ( const QIcon & icon )
- void setShortcut ( const QKeySequence & key )
- void setText ( const QString & text )
- QKeySequence shortcut () const
- QString text () const
- 201 открытых функций унаследованных от QWidget
- 29 открытых функций унаследованных от QObject
- 12 открытых функций унаследованных от QPaintDevice
Открытые слоты
- void animateClick ( int msec = 100 )
- void click ()
- void setChecked ( bool )
- void setIconSize ( const QSize & size )
- void toggle ()
Сигналы
- void clicked ( bool checked = false )
- void pressed ()
- void released ()
- void toggled ( bool checked )
Защищенные функции
- virtual void checkStateSet ()
- virtual bool hitButton ( const QPoint & pos ) const
- virtual void nextCheckState ()
- 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&ck && 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 предоставляет четыре сигнала:
- pressed() посылается, когда левая кнопка мыши нажмается в тот момент, когда указатель мыши находится внутри кнопки.
- released() посылается, когда отпускается левая кнопка мыши.
- clicked() посылается, когда кнопка мыши сначала нажмается, и затем отпускается, когда нажимается комбинация горячих клавиш, или когда вызывается функция click() или animateClick().
- 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
|