Spec-Zone.ru › Qt 5.12

Класс 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
  • 59 свойств, унаследованных от QWidget
  • 1 свойство, унаследованное от QObject

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

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

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

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

Сигналы

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

Статические публичные члены

const QMetaObject staticMetaObject
  • 5 статических публичных членов унаследованных от QWidget
  • 9 статических публичных членов унаследованных от QObject

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

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

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

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

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

  • 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() оба равны false).

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

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

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

См. также QButtonGroup.

Документация свойств

autoExclusive : bool

Это свойство указывает, включена ли функция автоматического исключения.

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

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

По умолчанию 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 и 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

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

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

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

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 = nullptr)

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

[virtual] QAbstractButton::~QAbstractButton()

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

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

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

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

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

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

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

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

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

[virtual protected] void QAbstractButton::checkStateSet()

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

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

[slot] void QAbstractButton::click()

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

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

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

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

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

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

Если кнопка может быть выбрана, checked имеет значение true, если кнопка выбрана, или false, если кнопка не выбрана.

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

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

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

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

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

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

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

QButtonGroup *QAbstractButton::group() const

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

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

См. также QButtonGroup.

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

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

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

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

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

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

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

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

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

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

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

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

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

[virtual protected] void QAbstractButton::nextCheckState()

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

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

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

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

[signal] void QAbstractButton::pressed()

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

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

[signal] void QAbstractButton::released()

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

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

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

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

[slot] void QAbstractButton::toggle()

Переключает состояние кнопки, которая может быть выбрана.

См. также checked.

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

Этот сигнал генерируется всякий раз, когда состояние кнопки, которая может быть выбрана, меняется. 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/qt-5.12/qabstractbutton.html

Spec-Zone.ru

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