Spec-Zone.ru › Qt 5.15

Класс QPushButton

Виджет QPushButton предоставляет командную кнопку. Подробнее...

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

QCommandLinkButton

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

Свойства

  • autoDefault : bool
  • default : bool
  • flat : bool

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

QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr)
QPushButton(const QString &text, QWidget *parent = nullptr)
QPushButton(QWidget *parent = nullptr)
virtual ~QPushButton()
bool autoDefault() const
bool isDefault() const
bool isFlat() const
QMenu * menu() const
void setAutoDefault(bool)
void setDefault(bool)
void setFlat(bool)
void setMenu(QMenu *menu)

Переопределенные открытые функции

virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

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

void showMenu()

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

void initStyleOption(QStyleOptionButton *option) const

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

virtual bool event(QEvent *e) override
virtual void focusInEvent(QFocusEvent *e) override
virtual void focusOutEvent(QFocusEvent *e) override
virtual bool hitButton(const QPoint &pos) const override
virtual void keyPressEvent(QKeyEvent *e) override
virtual void paintEvent(QPaintEvent *) override

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

Кнопка, или командная кнопка, является, пожалуй, наиболее часто используемым виджетом в любом графическом пользовательском интерфейсе. Нажмите (щелкните) кнопку, чтобы дать компьютеру команду выполнить какое-либо действие или ответить на вопрос. Типичные кнопки — OK, Применить, Отмена, Закрыть, Да, Нет и Справка.

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

QPushButton *button = new QPushButton("&Download", this);

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

Кнопки отображают текстовую метку и, необязательно, небольшой значок. Их можно установить с помощью конструкторов и изменить позже, используя setText() и setIcon(). Если кнопка отключена, отображение текста и значка будет изменено в соответствии со стилем интерфейса, чтобы кнопка выглядела «отключенной».

Кнопка срабатывает, и издается сигнал clicked(), когда она активируется мышью, клавишей пробела или сочетанием клавиш. Подключитесь к этому сигналу, чтобы выполнить действие кнопки. Кнопки также обеспечивают менее часто используемые сигналы, например pressed() и released().

Командные кнопки в диалоговых окнах по умолчанию являются автоматическими кнопками по умолчанию, то есть они автоматически становятся кнопкой по умолчанию, когда получают фокус ввода с клавиатуры. Кнопка по умолчанию — это кнопка, которая активируется, когда пользователь нажимает клавиши Enter или Return в диалоговом окне. Это можно изменить с помощью setAutoDefault(). Обратите внимание, что кнопки по умолчанию резервируют немного дополнительного места, необходимого для отображения индикатора кнопки по умолчанию. Если вы не хотите этого пространства вокруг кнопок, вызовите setAutoDefault(false).

Будучи центральными, кнопки за последнее десятилетие эволюционировали, приобретя множество вариантов. Руководство Microsoft по стилю теперь показывает около десяти различных состояний кнопок Windows, и текст предполагает, что их намного больше, если учитывать все комбинации функций.

Наиболее важные режимы или состояния:

  • Доступна или нет (отсеяна, отключена).
  • Стандартная кнопка, переключающаяся кнопка или кнопка меню.
  • Включена или выключена (только для переключаемых кнопок).
  • По умолчанию или обычная. Кнопка по умолчанию в диалоговом окне обычно может быть «нажата» с помощью клавиш Enter или Return.
  • Автоповтор или нет.
  • Нажата или нет.

Как общее правило, используйте кнопку, когда приложение или диалоговое окно выполняет действие при нажатии на нее (например, Применить, Отмена, Закрыть и Справка) и когда виджет должен иметь широкую прямоугольную форму с текстовой меткой. Небольшие, обычно квадратные кнопки, которые изменяют состояние окна, а не выполняют действие (например, кнопки в правом верхнем углу QFileDialog), не являются командными кнопками, а кнопками инструментов. Qt предоставляет специальный класс (QToolButton) для этих кнопок.

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

Примечание: В macOS, если ширина кнопки становится меньше 50, а высота меньше 30, углы кнопки меняются с закругленных на квадратные. Используйте функцию setMinimumSize(), чтобы предотвратить это поведение.

Разновидностью командной кнопки является кнопка меню. Эти кнопки предоставляют не только одну команду, но и несколько, поскольку при нажатии они вызывают всплывающее меню с вариантами. Используйте метод setMenu(), чтобы связать всплывающее меню с кнопкой.

Другие классы кнопок — это кнопка выбора (см. QRadioButton) и флажки (см. QCheckBox).

В Qt базовый класс QAbstractButton предоставляет большинство режимов и других API, а QPushButton предоставляет логику графического интерфейса. Для получения дополнительной информации об API см. QAbstractButton.

См. также QToolButton, QRadioButton, QCheckBox и Руководство по проектированию графического интерфейса пользователя: Кнопка.

END_OF_DOCUMENT_MARKER ```

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

autoDefault : bool

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

Если это свойство установлено в true, то кнопка является кнопкой по умолчанию.

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

По умолчанию это свойство установлено в true для кнопок, у которых родительским элементом является QDialog; в противном случае оно установлено в false.

См. свойство default для подробностей о взаимодействии свойств default и auto-default.

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

bool autoDefault() const
void setAutoDefault(bool)

default : bool

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

Кнопки по умолчанию и auto-default определяют, что происходит, когда пользователь нажимает Enter в диалоговом окне.

Кнопка с этим свойством, установленным в true (т.е., кнопка по умолчанию диалогового окна), автоматически нажимается при нажатии пользователем Enter, за исключением одного случая: если кнопка autoDefault в данный момент имеет фокус, нажимается кнопка autoDefault. Если в диалоговом окне есть кнопки autoDefault, но нет кнопки по умолчанию, нажатие Enter нажмет либо кнопку autoDefault, у которой в данный момент есть фокус, либо, если у никакой кнопки нет фокуса, следующую кнопку autoDefault в цепочке фокуса.

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

Функциональность кнопки по умолчанию реализована только в диалоговых окнах. Кнопки всегда можно нажать с клавиатуры, нажав пробел, когда у кнопки есть фокус.

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

По умолчанию это свойство установлено в false.

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

bool isDefault() const
void setDefault(bool)

flat : bool

Это свойство указывает, является ли граница кнопки приподнятой.

По умолчанию это свойство установлено в false. Если это свойство установлено, большинство стилей не будут рисовать фон кнопки, если кнопка не нажата. setAutoFillBackground() может использоваться для обеспечения того, что фон заполнен кистью QPalette::Button.

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

bool isFlat() const
void setFlat(bool)

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

QPushButton::QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr)

Создаёт кнопку с icon и text, и родительским элементом parent.

Обратите внимание, что вы также можете передать объект QPixmap в качестве иконки (благодаря неявной операции преобразования, предоставляемой C++).

QPushButton::QPushButton(const QString &text, QWidget *parent = nullptr)

Создаёт кнопку с родительским элементом parent и текстом text.

QPushButton::QPushButton(QWidget *parent = nullptr)

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

[slot] void QPushButton::showMenu()

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

[virtual] QPushButton::~QPushButton()

Уничтожает кнопку.

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

Переопределяет: QAbstractButton::event(QEvent *e).

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

Переопределяет: QAbstractButton::focusInEvent(QFocusEvent *e).

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

Переопределяет: QAbstractButton::focusOutEvent(QFocusEvent *e).

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

Переопределяет: QAbstractButton::hitButton(const QPoint &pos) const.

[protected] void QPushButton::initStyleOption(QStyleOptionButton *option) const

Инициализирует option значениями из этой QPushButton. Этот метод полезен для подклассов, когда им нужен QStyleOptionButton, но они не хотят заполнять всю информацию самостоятельно.

См. также QStyleOption::initFrom().

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

Переопределяет: QAbstractButton::keyPressEvent(QKeyEvent *e).

QMenu *QPushButton::menu() const

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

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

[override virtual] QSize QPushButton::minimumSizeHint() const

Переопределяет функцию доступа к свойству: QWidget::minimumSizeHint.

[override virtual protected] void QPushButton::paintEvent(QPaintEvent *)

Переопределяет: QAbstractButton::paintEvent(QPaintEvent *e).

void QPushButton::setMenu(QMenu *menu)

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

Владение меню не передаётся кнопке.

Screenshot of a Fusion style push button with popup menu.

Кнопка с всплывающими меню, показанными в Fusion widget style (стиле виджета Fusion).

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

[override virtual] QSize QPushButton::sizeHint() const

Переопределяет функцию доступа к свойству: QWidget::sizeHint.

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

Spec-Zone.ru

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