Класс QPushButton
Виджет QPushButton предоставляет командную кнопку. Подробнее...
| Заголовок: | #include <QPushButton> |
| qmake: | QT += widgets |
| Наследует: | QAbstractButton |
| Наследуется от: |
Свойства
- autoDefault : bool
- default : bool
- flat : bool
- 11 свойств унаследовано от QAbstractButton
- 58 свойств унаследовано от QWidget
- 1 свойство унаследовано от QObject
Открытые функции
| QPushButton(QWidget *parent = Q_NULLPTR) | |
| QPushButton(const QString &text, QWidget *parent = Q_NULLPTR) | |
| QPushButton(const QIcon &icon, const QString &text, QWidget *parent = Q_NULLPTR) | |
| ~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 |
| virtual QSize | sizeHint() const |
- 21 открытая функция унаследована от QAbstractButton
- 211 открытых функций унаследовано от QWidget
- 31 открытая функция унаследована от QObject
- 14 открытых функций унаследовано от QPaintDevice
Открытые слоты
| void | showMenu() |
- 5 открытых слотов унаследовано от QAbstractButton
- 19 открытых слотов унаследовано от QWidget
- 1 открытый слот унаследовано от QObject
Защищенные функции
| void | initStyleOption(QStyleOptionButton *option) const |
Переопределенные защищенные функции
| virtual bool | event(QEvent *e) |
| virtual void | focusInEvent(QFocusEvent *e) |
| virtual void | focusOutEvent(QFocusEvent *e) |
| virtual bool | hitButton(const QPoint &pos) const |
| virtual void | keyPressEvent(QKeyEvent *e) |
| virtual void | paintEvent(QPaintEvent *) |
- 14 защищенных функций унаследовано от QAbstractButton
- 35 защищенных функций унаследовано от QWidget
- 9 защищенных функций унаследовано от QObject
- 1 защищенная функция унаследована от QPaintDevice
Дополнительные унаследованные члены
- 4 сигнала унаследовано от QAbstractButton
- 3 сигнала унаследовано от QWidget
- 2 сигнала унаследовано от QObject
- 5 статических открытых членов унаследовано от QWidget
- 11 статических открытых членов унаследовано от 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) для этих кнопок.
Если вам нужно поведение переключения (см. setCheckable()) или кнопка, которая автоматически повторяет сигнал активации при нажатии, как стрелки в полосе прокрутки (см. setAutoRepeat()), то командная кнопка, вероятно, не то, что вам нужно. В случае сомнений используйте кнопку инструмента.
Разновидностью командной кнопки является кнопка меню. Они предоставляют не только одну команду, но и несколько, так как при нажатии они отображают меню вариантов. Используйте метод setMenu() для ассоциации всплывающего меню с кнопкой.
Другие классы кнопок — это радиокнопки (см. QRadioButton) и флажки (см. QCheckBox).
| Кнопка, отображаемая в стиле виджета Macintosh. Обратите внимание, что когда ширина кнопки становится меньше 50, а высота — меньше 30, углы кнопки изменяются с закругленных на квадратные. Используйте функцию setMinimumSize(), чтобы предотвратить это поведение. |
|
| Кнопка, отображаемая в стиле виджета Windows Vista. | |
| Кнопка, отображаемая в стиле виджета Fusion. |
В Qt базовый класс QAbstractButton предоставляет большинство режимов и API, а QPushButton предоставляет логику графического интерфейса. Для получения дополнительной информации об API см. QAbstractButton.
См. также QToolButton, QRadioButton, QCheckBox и Руководство по разработке графического интерфейса пользователя: кнопка.
Документация свойств
autoDefault : bool
Это свойство указывает, является ли кнопка кнопкой по умолчанию.
Если это свойство установлено в true, то кнопка является кнопкой по умолчанию.
В некоторых стилях графического интерфейса кнопка по умолчанию отображается с дополнительной рамкой вокруг нее, до 3 пикселей или более. Qt автоматически сохраняет это пространство вокруг кнопок по умолчанию, т.е. кнопки по умолчанию могут иметь немного больший размер.
По умолчанию это свойство равно true для кнопок, у которых есть родитель QDialog; в противном случае оно по умолчанию равно false.
См. свойство default для получения подробностей о том, как default и auto-default взаимодействуют.
Функции доступа:
| bool | autoDefault() const |
| void | setAutoDefault(bool) |
default : bool
Это свойство указывает, является ли кнопка кнопкой по умолчанию.
Кнопки по умолчанию и autodefault определяют, что происходит при нажатии пользователем клавиши Enter в диалоговом окне.
Кнопка с этим свойством, установленным в true (т.е. кнопка по умолчанию диалогового окна), будет нажиматься автоматически при нажатии пользователем клавиши Enter, за одним исключением: если кнопка с свойством autoDefault в данный момент имеет фокус, нажимается кнопка autoDefault. Когда диалоговое окно имеет кнопки 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 = Q_NULLPTR)
Конструирует кнопку без текста и с родителем parent.
QPushButton::QPushButton(const QString &text, QWidget *parent = Q_NULLPTR)
Конструирует кнопку с родителем parent и текстом text.
QPushButton::QPushButton(const QIcon &icon, const QString &text, QWidget *parent = Q_NULLPTR)
Конструирует кнопку с icon и text, и с родителем parent.
Обратите внимание, что вы также можете передать объект QPixmap в качестве иконки (благодаря неявной операции приведения типов, предоставляемой C++).
QPushButton::~QPushButton()
Уничтожает кнопку.
[virtual protected] bool QPushButton::event(QEvent *e)
Переопределено из QObject::event().
[virtual protected] void QPushButton::focusInEvent(QFocusEvent *e)
Переопределено из QWidget::focusInEvent().
[virtual protected] void QPushButton::focusOutEvent(QFocusEvent *e)
Переопределено из QWidget::focusOutEvent().
[virtual protected] bool QPushButton::hitButton(const QPoint &pos) const
Переопределено из QAbstractButton::hitButton().
[protected] void QPushButton::initStyleOption(QStyleOptionButton *option) const
Инициализирует option значениями из этой QPushButton. Этот метод полезен для подклассов, когда им требуется QStyleOptionButton, но они не хотят заполнять всю информацию самостоятельно.
См. также QStyleOption::initFrom().
[virtual protected] void QPushButton::keyPressEvent(QKeyEvent *e)
Переопределено из QWidget::keyPressEvent().
QMenu *QPushButton::menu() const
Возвращает ассоциированное всплывающее меню кнопки или 0, если всплывающее меню не было задано.
См. также setMenu().
[virtual] QSize QPushButton::minimumSizeHint() const
Переопределено из QWidget::minimumSizeHint().
[virtual protected] void QPushButton::paintEvent(QPaintEvent *)
Переопределено из QWidget::paintEvent().
void QPushButton::setMenu(QMenu *menu)
Ассоциирует всплывающее меню menu с этой кнопкой. Это превращает кнопку в кнопку меню, что в некоторых стилях приведет к отображению маленького треугольника справа от текста кнопки.
Владение меню не передается кнопке.
Кнопка с всплывающими меню, отображенными в стиле виджета Fusion.
См. также menu().
[slot] void QPushButton::showMenu()
Отображает (всплывает) связанное всплывающее меню. Если такого меню нет, эта функция ничего не делает. Эта функция не возвращается, пока пользователь не закроет всплывающее меню.
[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.6/qpushbutton.html