Spec-Zone.ru › Qt 5.11

Класс 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
  • 34 публичных функций, унаследованных от QObject
  • 14 публичных функций, унаследованных от QPaintDevice

Публичные слоты

void showMenu()
  • 5 публичных слотов, унаследованных от QAbstractButton
  • 19 публичных слотов, унаследованных от QWidget
  • 1 публичный слот, унаследованный от 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 публичная переменная, унаследованная от QObject
  • 5 статических публичных членов, унаследованных от QWidget
  • 10 статических публичных членов, унаследованных от QObject
  • 1 защищённый слот, унаследованный от QWidget
  • 2 защищённых переменных, унаследованных от QObject
  • 1 защищённый тип, унаследованный от QPaintDevice

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

Виджет 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) для этих кнопок.

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

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

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

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

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

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

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

autoDefault : bool

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

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

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

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

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

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

bool autoDefault() const
void setAutoDefault(bool)

default : bool

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

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

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

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

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

Если свойство 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/archives/qt-5.11/qpushbutton.html

Spec-Zone.ru

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