Spec-Zone.ru › Qt 5.12

Класс QPushButton

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

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

QCommandLinkButton

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

Свойства

  • autoDefault : bool
  • default : bool
  • flat : bool
  • 11 свойств унаследовано от QAbstractButton
  • 59 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

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

QPushButton(QWidget *parent = nullptr)
QPushButton(const QString &text, QWidget *parent = nullptr)
QPushButton(const QIcon &icon, const QString &text, 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
  • 21 открытая функция унаследована от QAbstractButton
  • 214 открытых функций унаследовано от QWidget
  • 31 открытая функция унаследована от QObject
  • 14 открытых функций унаследовано от QPaintDevice

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

void showMenu()
  • 5 открытых слотов унаследовано от QAbstractButton
  • 19 открытых слотов унаследовано от QWidget
  • 1 открытый слот унаследовано от QObject

Статические открытые члены

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

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

void initStyleOption(QStyleOptionButton *option) const

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

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 paintEvent(QPaintEvent *) override
  • 14 защищённых функций унаследовано от QAbstractButton
  • 35 защищённых функций унаследовано от QWidget
  • 9 защищённых функций унаследовано от QObject
  • 1 защищённая функция унаследовано от QPaintDevice

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

  • 4 сигнала унаследовано от QAbstractButton
  • 3 сигнала унаследовано от QWidget
  • 2 сигнала унаследовано от QObject
  • 1 защищённый слот унаследовано от QWidget

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

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

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

END_OF_DOCUMENT_MARKER

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

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

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

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

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

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

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

autoDefault : bool

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

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

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

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

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

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

bool autoDefault() const
void setAutoDefault(bool)

default : bool

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

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

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

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

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

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

Значение по умолчанию для этого свойства — false.

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

bool isDefault() const
void setDefault(bool)

flat : bool

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

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

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

bool isFlat() const
void setFlat(bool)

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

QPushButton::QPushButton(QWidget *parent = nullptr)

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

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

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

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

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

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

[virtual] QPushButton::~QPushButton()

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

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

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

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

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

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

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

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

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

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

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

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

QMenu *QPushButton::menu() const

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

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

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

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

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

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

void QPushButton::setMenu(QMenu *menu)

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

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

Screenshot of a Fusion style push button with popup menu.

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

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

[slot] void QPushButton::showMenu()

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

[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.12/qpushbutton.html

Spec-Zone.ru

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