Spec-Zone.ru › Qt 5.6

Класс QAbstractButton

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

Заголовок: #include <QAbstractButton>
qmake: QT += widgets
Наследует: QWidget
Наследуется от:

QCheckBox, QPushButton, QRadioButton и QToolButton

  • Список всех членов, включая унаследованные

Свойства

  • autoExclusive : bool
  • autoRepeat : bool
  • autoRepeatDelay : int
  • autoRepeatInterval : int
  • checkable : bool
  • checked : bool
  • down : bool
  • icon : QIcon
  • iconSize : QSize
  • shortcut : QKeySequence
  • text : QString
  • 58 свойств, унаследованных от QWidget
  • 1 свойство, унаследованное от QObject

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

QAbstractButton(QWidget *parent = Q_NULLPTR)
~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
  • 211 открытых функций, унаследованных от QWidget
  • 31 открытых функций, унаследованных от QObject
  • 14 открытых функций, унаследованных от QPaintDevice

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

void animateClick(int msec = 100)
void click()
void setChecked(bool)
void setIconSize(const QSize &size)
void toggle()
  • 19 открытых слотов, унаследованных от QWidget
  • 1 открытый слот, унаследованный от QObject

Сигналы

void clicked(bool checked = false)
void pressed()
void released()
void toggled(bool checked)
  • 3 сигнала, унаследованные от QWidget
  • 2 сигнала, унаследованные от QObject

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

virtual void checkStateSet()
virtual bool hitButton(const QPoint &pos) const
virtual void nextCheckState()

Переопределённые защищённые функции

виртуальный void changeEvent(QEvent *e)
виртуальный bool event(QEvent *e)
виртуальный void focusInEvent(QFocusEvent *e)
виртуальный void focusOutEvent(QFocusEvent *e)
виртуальный void keyPressEvent(QKeyEvent *e)
виртуальный void keyReleaseEvent(QKeyEvent *e)
виртуальный void mouseMoveEvent(QMouseEvent *e)
виртуальный void mousePressEvent(QMouseEvent *e)
виртуальный void mouseReleaseEvent(QMouseEvent *e)
виртуальный void paintEvent(QPaintEvent *e) = 0
виртуальный void timerEvent(QTimerEvent *e)
  • 35 защищенные функции, унаследованные от QWidget
  • 9 защищенные функции, унаследованные от QObject
  • 1 защищенная функция, унаследованная от QPaintDevice

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

  • 5 статические публичные члены, унаследованные от QWidget
  • 11 статические публичные члены, унаследованные от 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() указывает, может ли пользователь нажать кнопку.

    Примечание: В отличие от других виджетов, кнопки, производные от QAbstractButton, принимают события мыши и контекстного меню, когда они отключены.

  • setAutoRepeat() устанавливает, будет ли кнопка автоматически повторяться, если пользователь удерживает её нажатой. autoRepeatDelay и autoRepeatInterval определяют, как выполняется автоматическое повторение.
  • setCheckable() устанавливает, является ли кнопка переключательной кнопкой или нет.

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

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() генерируются с определёнными интервалами, когда кнопка удерживается нажатой. По умолчанию автоповтор выключен. Начальная задержка и интервал повтора задаются в миллисекундах свойствами 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 и autoRepeatInterval.

autoRepeatInterval : int

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

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

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

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

int autoRepeatInterval() const
void setAutoRepeatInterval(int)

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

checkable : bool

Это свойство указывает, может ли кнопка быть отмеченной.

По умолчанию кнопка не может быть отмеченной.

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

bool isCheckable() const
void setCheckable(bool)

См. также checked.

checked : bool

Это свойство указывает, отмечена ли кнопка.

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

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

bool isChecked() const
void setChecked(bool)

Сигнал уведомления:

void toggled(bool checked)

См. также checkable.

down : bool

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

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

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

bool isDown() const
void setDown(bool)

icon : QIcon

Это свойство содержит значок, отображаемый на кнопке.

Размер значка по умолчанию определяется стилем графического интерфейса, но его можно изменить, установив свойство iconSize.

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

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

iconSize : QSize

Это свойство определяет размер значка для этой кнопки.

Размер по умолчанию определяется стилем графического интерфейса. Это максимальный размер для значков. Значки меньшего размера не будут масштабироваться.

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

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

shortcut : QKeySequence

Это свойство содержит сочетание клавиш, связанное с кнопкой.

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

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

text : QString

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

Если у кнопки нет текста, функция text() вернёт пустую строку.

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

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

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

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

Документация по членам-функциям

QAbstractButton::QAbstractButton(QWidget *parent = Q_NULLPTR)

Создаёт абстрактную кнопку с заданным parent.

QAbstractButton::~QAbstractButton()

Удаляет кнопку.

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

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

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

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

Функция ничего не делает, если кнопка выключена.

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

[virtual protected] void QAbstractButton::changeEvent(QEvent *e)

Переопределяет QWidget::changeEvent().

[virtual protected] void QAbstractButton::checkStateSet()

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

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

[slot] void QAbstractButton::click()

Выполняет щелчок.

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

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

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

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

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

Если кнопка имеет свойство checkable, checked равно true, если кнопка отмечена, или false, если кнопка не отмечена.

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

[virtual protected] bool QAbstractButton::event(QEvent *e)

Переопределено из QObject::event().

[virtual protected] void QAbstractButton::focusInEvent(QFocusEvent *e)

Переопределено из QWidget::focusInEvent().

[virtual protected] void QAbstractButton::focusOutEvent(QFocusEvent *e)

Переопределено из QWidget::focusOutEvent().

QButtonGroup *QAbstractButton::group() const

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

Если кнопка не является членом какой-либо группы QButtonGroup, эта функция возвращает 0.

См. также QButtonGroup.

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

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

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

[virtual protected] void QAbstractButton::keyPressEvent(QKeyEvent *e)

Переопределено из QWidget::keyPressEvent().

[virtual protected] void QAbstractButton::keyReleaseEvent(QKeyEvent *e)

Переопределено из QWidget::keyReleaseEvent().

[virtual protected] void QAbstractButton::mouseMoveEvent(QMouseEvent *e)

Переопределено из QWidget::mouseMoveEvent().

[virtual protected] void QAbstractButton::mousePressEvent(QMouseEvent *e)

Переопределено из QWidget::mousePressEvent().

[virtual protected] void QAbstractButton::mouseReleaseEvent(QMouseEvent *e)

Переопределено из QWidget::mouseReleaseEvent().

[virtual protected] void QAbstractButton::nextCheckState()

Этот виртуальный обработчик вызывается при щелчке по кнопке. По умолчанию, он вызывает setChecked(!isChecked()) если кнопка имеет свойство checkable. Он позволяет подклассам реализовывать промежуточные состояния кнопок.

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

[pure virtual protected] void QAbstractButton::paintEvent(QPaintEvent *e)

Переопределено из QWidget::paintEvent().

[signal] void QAbstractButton::pressed()

Этот сигнал испускается при нажатии кнопки.

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

[signal] void QAbstractButton::released()

Этот сигнал испускается при отпускании кнопки.

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

[virtual protected] void QAbstractButton::timerEvent(QTimerEvent *e)

Переопределено из QObject::timerEvent().

[slot] void QAbstractButton::toggle()

Переключает состояние кнопки с checkable.

См. также checked.

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

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

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

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

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

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

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

Примечание: Сигнал уведомления для свойства checked.

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

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qabstractbutton.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API