Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QPushButton Class Reference

The QPushButton widget provides a command button. More...

#include <qpushbutton.h>

Inheritance diagram for QPushButton:
Collaboration diagram for QPushButton:

Public Member Functions

 QPushButton (QWidget *parent=nullptr)
 Constructs a push button with no text and a parent.
 QPushButton (const QString &text, QWidget *parent=nullptr)
 Constructs a push button with the parent parent and the text text.
 QPushButton (const QIcon &icon, const QString &text, QWidget *parent=nullptr)
 Constructs a push button with an icon and a text, and a parent.
 ~QPushButton ()
 Destroys the push button.
QSize sizeHint () const override
 \reimp
QSize minimumSizeHint () const override
 \reimp
bool autoDefault () const
void setAutoDefault (bool)
bool isDefault () const
void setDefault (bool)
void setFlat (bool)
bool isFlat () const
Public Member Functions inherited from QAbstractButton
 QAbstractButton (QWidget *parent=nullptr)
 Constructs an abstract button with a parent.
 ~QAbstractButton ()
 Destroys the button.
void setText (const QString &text)
QString text () const
void setIcon (const QIcon &icon)
QIcon icon () const
QSize iconSize () const
void setShortcut (const QKeySequence &key)
QKeySequence shortcut () const
void setCheckable (bool)
bool isCheckable () const
bool isChecked () const
void setDown (bool)
bool isDown () const
void setAutoRepeat (bool)
bool autoRepeat () const
void setAutoRepeatDelay (int)
int autoRepeatDelay () const
void setAutoRepeatInterval (int)
int autoRepeatInterval () const
void setAutoExclusive (bool)
bool autoExclusive () const
Public Member Functions inherited from QWidget
 QWidget (QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
 Constructs a widget which is a child of parent, with widget flags set to f.
 ~QWidget ()
 Destroys the widget.
int devType () const override
WId winId () const
 Returns the window system identifier of the widget.
void createWinId ()
WId internalWinId () const
WId effectiveWinId () const
QStylestyle () const
void setStyle (QStyle *)
 Sets the widget's GUI style to style.
bool isWindow () const
 Returns true if the widget is an independent window, otherwise returns false.
bool isModal () const
Qt::WindowModality windowModality () const
void setWindowModality (Qt::WindowModality windowModality)
bool isEnabled () const
bool isEnabledTo (const QWidget *) const
 Returns true if this widget would become enabled if ancestor is enabled; otherwise returns false.
QRect frameGeometry () const
const QRectgeometry () const
QRect normalGeometry () const
int x () const
int y () const
QPoint pos () const
QSize frameSize () const
QSize size () const
int width () const
int height () const
QRect rect () const
QRect childrenRect () const
QRegion childrenRegion () const
QSize minimumSize () const
QSize maximumSize () const
int minimumWidth () const
int minimumHeight () const
int maximumWidth () const
int maximumHeight () const
void setMinimumSize (const QSize &)
void setMinimumSize (int minw, int minh)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This function corresponds to setMinimumSize(QSize(minw, minh)).
void setMaximumSize (const QSize &)
void setMaximumSize (int maxw, int maxh)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This function corresponds to setMaximumSize(QSize(maxw, maxh)).
void setMinimumWidth (int minw)
void setMinimumHeight (int minh)
void setMaximumWidth (int maxw)
void setMaximumHeight (int maxh)
QSize sizeIncrement () const
void setSizeIncrement (const QSize &)
void setSizeIncrement (int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Sets the x (width) size increment to w and the y (height) size increment to h.
QSize baseSize () const
void setBaseSize (const QSize &)
void setBaseSize (int basew, int baseh)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This corresponds to setBaseSize(QSize(basew, baseh)).
void setFixedSize (const QSize &)
 Sets both the minimum and maximum sizes of the widget to s, thereby preventing it from ever growing or shrinking.
void setFixedSize (int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Sets the width of the widget to w and the height to h.
void setFixedWidth (int w)
 Sets both the minimum and maximum width of the widget to w without changing the heights.
void setFixedHeight (int h)
 Sets both the minimum and maximum heights of the widget to h without changing the widths.
QPointF mapToGlobal (const QPointF &) const
 Translates the widget coordinate pos to global screen coordinates.
QPoint mapToGlobal (const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
QPointF mapFromGlobal (const QPointF &) const
 Translates the global screen coordinate pos to widget coordinates.
QPoint mapFromGlobal (const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
QPointF mapToParent (const QPointF &) const
 Translates the widget coordinate pos to a coordinate in the parent widget.
QPoint mapToParent (const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
QPointF mapFromParent (const QPointF &) const
 Translates the parent widget coordinate pos to widget coordinates.
QPoint mapFromParent (const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
QPointF mapTo (const QWidget *, const QPointF &) const
 Translates the widget coordinate pos to the coordinate system of parent.
QPoint mapTo (const QWidget *, const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
QPointF mapFrom (const QWidget *, const QPointF &) const
 Translates the widget coordinate pos from the coordinate system of parent to this widget's coordinate system.
QPoint mapFrom (const QWidget *, const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
QWidgetwindow () const
 Returns the window for this widget, i.e.
QWidgetnativeParentWidget () const
QWidgettopLevelWidget () const
const QPalettepalette () const
void setPalette (const QPalette &)
void setBackgroundRole (QPalette::ColorRole)
 Sets the background role of the widget to role.
QPalette::ColorRole backgroundRole () const
 Returns the background role of the widget.
void setForegroundRole (QPalette::ColorRole)
 Sets the foreground role of the widget to role.
QPalette::ColorRole foregroundRole () const
 Returns the foreground role.
const QFontfont () const
void setFont (const QFont &)
QFontMetrics fontMetrics () const
 Returns the font metrics for the widget's current font.
QFontInfo fontInfo () const
 Returns the font info for the widget's current font.
QCursor cursor () const
void setCursor (const QCursor &)
void unsetCursor ()
void setMouseTracking (bool enable)
bool hasMouseTracking () const
bool underMouse () const
 Returns true if the widget is under the mouse cursor; otherwise returns false.
void setTabletTracking (bool enable)
bool hasTabletTracking () const
void setMask (const QBitmap &)
 Causes only the pixels of the widget for which bitmap has a corresponding 1 bit to be visible.
void setMask (const QRegion &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Causes only the parts of the widget which overlap region to be visible.
QRegion mask () const
 Returns the mask currently set on a widget.
void clearMask ()
 Removes any mask set by setMask().
void render (QPaintDevice *target, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren))
void render (QPainter *painter, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren))
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Renders the widget into the painter's QPainter::device().
Q_INVOKABLE QPixmap grab (const QRect &rectangle=QRect(QPoint(0, 0), QSize(-1, -1)))
void grabGesture (Qt::GestureType type, Qt::GestureFlags flags=Qt::GestureFlags())
 Subscribes the widget to a given gesture with specific flags.
void ungrabGesture (Qt::GestureType type)
 Unsubscribes the widget from a given gesture type.
QString styleSheet () const
QString windowTitle () const
void setWindowIcon (const QIcon &icon)
QIcon windowIcon () const
void setWindowIconText (const QString &)
QString windowIconText () const
void setWindowRole (const QString &)
 Sets the window's role to role.
QString windowRole () const
 Returns the window's role, or an empty string.
void setWindowFilePath (const QString &filePath)
QString windowFilePath () const
void setWindowOpacity (qreal level)
qreal windowOpacity () const
bool isWindowModified () const
void setLayoutDirection (Qt::LayoutDirection direction)
Qt::LayoutDirection layoutDirection () const
void unsetLayoutDirection ()
void setLocale (const QLocale &locale)
QLocale locale () const
void unsetLocale ()
bool isRightToLeft () const
bool isLeftToRight () const
bool isActiveWindow () const
void activateWindow ()
 Sets the top-level widget containing this widget to be the active window.
void clearFocus ()
 Takes keyboard input focus from the widget.
void setFocus (Qt::FocusReason reason)
 Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the \l{isActiveWindow()}{active window}.
Qt::FocusPolicy focusPolicy () const
void setFocusPolicy (Qt::FocusPolicy policy)
bool hasFocus () const
void setFocusProxy (QWidget *)
 Sets the widget's focus proxy to widget w.
QWidgetfocusProxy () const
 Returns the focus proxy, or \nullptr if there is no focus proxy.
Qt::ContextMenuPolicy contextMenuPolicy () const
void setContextMenuPolicy (Qt::ContextMenuPolicy policy)
void grabMouse ()
 Grabs the mouse input.
void grabMouse (const QCursor &)
void releaseMouse ()
 Releases the mouse grab.
void grabKeyboard ()
 Grabs the keyboard input.
void releaseKeyboard ()
 Releases the keyboard grab.
int grabShortcut (const QKeySequence &key, Qt::ShortcutContext context=Qt::WindowShortcut)
 Adds a shortcut to Qt's shortcut system that watches for the given key sequence in the given context.
void releaseShortcut (int id)
 Removes the shortcut with the given id from Qt's shortcut system.
void setShortcutEnabled (int id, bool enable=true)
 If enable is true, the shortcut with the given id is enabled; otherwise the shortcut is disabled.
void setShortcutAutoRepeat (int id, bool enable=true)
bool updatesEnabled () const
void setUpdatesEnabled (bool enable)
void update (int x, int y, int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version updates a rectangle (x, y, w, h) inside the widget.
void update (const QRect &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version updates a rectangle rect inside the widget.
void update (const QRegion &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version repaints a region rgn inside the widget.
void repaint (int x, int y, int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version repaints a rectangle (x, y, w, h) inside the widget.
void repaint (const QRect &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version repaints a rectangle rect inside the widget.
void repaint (const QRegion &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version repaints a region rgn inside the widget.
void stackUnder (QWidget *)
 Places the widget under w in the parent widget's stack.
void move (int x, int y)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This corresponds to move(QPoint(x, y)).
void move (const QPoint &)
void resize (int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This corresponds to resize(QSize(w, h)).
void resize (const QSize &)
void setGeometry (int x, int y, int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This corresponds to setGeometry(QRect(x, y, w, h)).
void setGeometry (const QRect &)
QByteArray saveGeometry () const
bool restoreGeometry (const QByteArray &geometry)
void adjustSize ()
 Adjusts the size of the widget to fit its contents.
bool isVisible () const
bool isVisibleTo (const QWidget *) const
 Returns true if this widget would become visible if ancestor is shown; otherwise returns false.
bool isHidden () const
 Returns true if the widget is hidden, otherwise returns false.
bool isMinimized () const
bool isMaximized () const
bool isFullScreen () const
Qt::WindowStates windowState () const
 Returns the current window state.
void setWindowState (Qt::WindowStates state)
 Sets the window state to windowState.
void overrideWindowState (Qt::WindowStates state)
QSizePolicy sizePolicy () const
void setSizePolicy (QSizePolicy)
void setSizePolicy (QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Sets the size policy of the widget to horizontal and vertical, with standard stretch and no height-for-width.
virtual int heightForWidth (int) const
 Returns the preferred height for this widget, given the width w.
virtual bool hasHeightForWidth () const
QRegion visibleRegion () const
 Returns the unobscured region where paint events can occur.
void setContentsMargins (int left, int top, int right, int bottom)
 Sets the margins around the contents of the widget to have the sizes left, top, right, and bottom.
void setContentsMargins (const QMargins &margins)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
QMargins contentsMargins () const
 The contentsMargins function returns the widget's contents margins.
QRect contentsRect () const
 Returns the area inside the widget's margins.
QLayoutlayout () const
 Returns the layout manager that is installed on this widget, or \nullptr if no layout manager is installed.
void setLayout (QLayout *)
 Sets the layout manager for this widget to layout.
void updateGeometry ()
 Notifies the layout system that this widget has changed and may need to change geometry.
void setParent (QWidget *parent)
 Sets the parent of the widget to parent, and resets the window flags.
void setParent (QWidget *parent, Qt::WindowFlags f)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This function also takes widget flags, f as an argument.
void scroll (int dx, int dy)
 Scrolls the widget including its children dx pixels to the right and dy downward.
void scroll (int dx, int dy, const QRect &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version only scrolls r and does not move the children of the widget.
QWidgetfocusWidget () const
 Returns the last child of this widget that setFocus had been called on.
QWidgetnextInFocusChain () const
 Returns the next widget in this widget's focus chain.
QWidgetpreviousInFocusChain () const
 The previousInFocusChain function returns the previous widget in this widget's focus chain.
bool acceptDrops () const
void setAcceptDrops (bool on)
void addAction (QAction *action)
 Appends the action action to this widget's list of actions.
void addActions (const QList< QAction * > &actions)
 Appends the actions actions to this widget's list of actions.
void insertActions (QAction *before, const QList< QAction * > &actions)
 Inserts the actions actions to this widget's list of actions, before the action before.
void insertAction (QAction *before, QAction *action)
 Inserts the action action to this widget's list of actions, before the action before.
void removeAction (QAction *action)
 Removes the action action from this widget's list of actions.
QList< QAction * > actions () const
 Returns the (possibly empty) list of this widget's actions.
QActionaddAction (const QString &text)
QActionaddAction (const QIcon &icon, const QString &text)
QActionaddAction (const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type=Qt::AutoConnection)
QActionaddAction (const QIcon &icon, const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type=Qt::AutoConnection)
template<typename... Args, typename = compatible_action_slot_args<Args...>>
QActionaddAction (const QString &text, Args &&...args)
template<typename... Args, typename = compatible_action_slot_args<Args...>>
QActionaddAction (const QIcon &icon, const QString &text, Args &&...args)
QWidgetparentWidget () const
 Returns the parent of this widget, or \nullptr if it does not have any parent widget.
void setWindowFlags (Qt::WindowFlags type)
Qt::WindowFlags windowFlags () const
 Window flags are a combination of a type (e.g.
void setWindowFlag (Qt::WindowType, bool on=true)
void overrideWindowFlags (Qt::WindowFlags type)
 Sets the window flags for the widget to flags, without telling the window system.
Qt::WindowType windowType () const
 Returns the window type of this widget.
QWidgetchildAt (int x, int y) const
 Returns the visible child widget at the position ({x}, {y}) in the widget's coordinate system.
QWidgetchildAt (const QPoint &p) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Returns the visible child widget at point p in the widget's own coordinate system.
QWidgetchildAt (const QPointF &p) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void setAttribute (Qt::WidgetAttribute, bool on=true)
 Sets the attribute attribute on this widget if on is true; otherwise clears the attribute.
bool testAttribute (Qt::WidgetAttribute) const
 Returns true if attribute attribute is set on this widget; otherwise returns false.
QPaintEnginepaintEngine () const override
 Returns the widget's paint engine.
void ensurePolished () const
 Ensures that the widget and its children have been polished by QStyle (i.e., have a proper font and palette).
bool isAncestorOf (const QWidget *child) const
 Returns true if this widget is a parent, (or grandparent and so on to any level), of the given child, and both widgets are within the same window; otherwise returns false.
bool autoFillBackground () const
void setAutoFillBackground (bool enabled)
QBackingStorebackingStore () const
QWindowwindowHandle () const
 If this is a native widget, return the associated QWindow.
QScreenscreen () const
 Returns the screen the widget is on.
void setScreen (QScreen *)
 Sets the screen on which the widget should be shown to screen.
virtual QVariant inputMethodQuery (Qt::InputMethodQuery) const
 This method is only relevant for input widgets.
Qt::InputMethodHints inputMethodHints () const
void setInputMethodHints (Qt::InputMethodHints hints)
Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
QString objectName () const
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
QBindable< QStringbindableObjectName ()
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
bool isQmlObjectType () const
 Returns whether the object has been created by the QML engine or ownership has been explicitly set via QJSEngine::setObjectOwnership().
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
QThreadthread () const
 Returns the thread in which the object lives.
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
void killTimer (int id)
 Kills the timer with timer identifier, id.
void killTimer (Qt::TimerId id)
template<typename T>
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
template<typename T>
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
template<typename T>
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename T>
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
const QObjectListchildren () const
 Returns a list of child objects.
void setParent (QObject *parent)
 Makes the object a child of parent.
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
bool disconnect (const QObject *receiver, const char *member=nullptr) const
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
bool setProperty (const char *name, QVariant &&value)
QVariant property (const char *name) const
 Returns the value of the object's name property.
QList< QByteArraydynamicPropertyNames () const
QBindingStoragebindingStorage ()
const QBindingStoragebindingStorage () const
QObjectparent () const
 Returns a pointer to the parent object.
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
Public Member Functions inherited from QPaintDevice
virtual ~QPaintDevice ()
bool paintingActive () const
int width () const
int height () const
int widthMM () const
int heightMM () const
int logicalDpiX () const
int logicalDpiY () const
int physicalDpiX () const
int physicalDpiY () const
qreal devicePixelRatio () const
qreal devicePixelRatioF () const
int colorCount () const
int depth () const

Protected Member Functions

bool event (QEvent *e) override
 \reimp
void paintEvent (QPaintEvent *) override
 \reimp
void keyPressEvent (QKeyEvent *) override
 \reimp
void focusInEvent (QFocusEvent *) override
 \reimp
void focusOutEvent (QFocusEvent *) override
 \reimp
void mouseMoveEvent (QMouseEvent *) override
 \reimp
virtual void initStyleOption (QStyleOptionButton *option) const
 Initialize option with the values from this QPushButton.
bool hitButton (const QPoint &pos) const override
 \reimp
 QPushButton (QPushButtonPrivate &dd, QWidget *parent=nullptr)
Protected Member Functions inherited from QAbstractButton
virtual void checkStateSet ()
 This virtual handler is called when setChecked() is used, unless it is called from within nextCheckState().
virtual void nextCheckState ()
 This virtual handler is called when a button is clicked.
void keyReleaseEvent (QKeyEvent *e) override
 \reimp
void mousePressEvent (QMouseEvent *e) override
 \reimp
void mouseReleaseEvent (QMouseEvent *e) override
 \reimp
void changeEvent (QEvent *e) override
 \reimp
void timerEvent (QTimerEvent *e) override
 \reimp
 QAbstractButton (QAbstractButtonPrivate &dd, QWidget *parent=nullptr)
Protected Member Functions inherited from QWidget
bool event (QEvent *event) override
 This is the main event handler; it handles event event.
virtual void mouseDoubleClickEvent (QMouseEvent *event)
 This event handler, for event event, can be reimplemented in a subclass to receive mouse double click events for the widget.
virtual void enterEvent (QEnterEvent *event)
 This event handler can be reimplemented in a subclass to receive widget enter events which are passed in the event parameter.
virtual void leaveEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive widget leave events which are passed in the event parameter.
virtual void moveEvent (QMoveEvent *event)
 This event handler can be reimplemented in a subclass to receive widget move events which are passed in the event parameter.
virtual void resizeEvent (QResizeEvent *event)
 This event handler can be reimplemented in a subclass to receive widget resize events which are passed in the event parameter.
virtual void closeEvent (QCloseEvent *event)
 This event handler is called with the given event when Qt receives a window close request for a top-level widget from the window system.
virtual void contextMenuEvent (QContextMenuEvent *event)
 This event handler, for event event, can be reimplemented in a subclass to receive widget context menu events.
virtual void actionEvent (QActionEvent *event)
 This event handler is called with the given event whenever the widget's actions are changed.
virtual void showEvent (QShowEvent *event)
 This event handler can be reimplemented in a subclass to receive widget show events which are passed in the event parameter.
virtual void hideEvent (QHideEvent *event)
 This event handler can be reimplemented in a subclass to receive widget hide events.
virtual bool nativeEvent (const QByteArray &eventType, void *message, qintptr *result)
 This special event handler can be reimplemented in a subclass to receive native platform events identified by eventType which are passed in the message parameter.
int metric (PaintDeviceMetric) const override
 Internal implementation of the virtual QPaintDevice::metric() function.
void initPainter (QPainter *painter) const override
 Initializes the painter pen, background and font to the same as the given widget's.
QPaintDeviceredirected (QPoint *offset) const override
QPaintersharedPainter () const override
virtual void inputMethodEvent (QInputMethodEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive Input Method composition events.
void create (WId=0, bool initializeWindow=true, bool destroyOldWindow=true)
 Creates a new widget window.
void destroy (bool destroyWindow=true, bool destroySubWindows=true)
 Frees up window system resources.
virtual bool focusNextPrevChild (bool next)
 Finds a new widget to give the keyboard focus to, as appropriate for Tab and Shift+Tab, and returns true if it can find a new widget, or false if it can't.
bool focusNextChild ()
 Finds a new widget to give the keyboard focus to, as appropriate for \uicontrol Tab, and returns true if it can find a new widget, or false if it can't.
bool focusPreviousChild ()
 Finds a new widget to give the keyboard focus to, as appropriate for \uicontrol Shift+Tab, and returns true if it can find a new widget, or false if it can't.
 QWidget (QWidgetPrivate &d, QWidget *parent, Qt::WindowFlags f)
Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
int senderSignalIndex () const
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
bool isSignalConnected (const QMetaMethod &signal) const
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
virtual void connectNotify (const QMetaMethod &signal)
virtual void disconnectNotify (const QMetaMethod &signal)
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
Protected Member Functions inherited from QPaintDevice
 QPaintDevice () noexcept
double getDecodedMetricF (PaintDeviceMetric metricA, PaintDeviceMetric metricB) const

Properties

bool autoDefault
 whether the push button is an auto default button
bool default
 whether the push button is the default button
bool flat
 whether the button border is raised
Properties inherited from QAbstractButton
QString text
 the text shown on the button
QIcon icon
 the icon shown on the button
QSize iconSize
 the icon size used for this button.
QKeySequence shortcut
 the mnemonic associated with the button
bool checkable
 whether the button is checkable
bool checked
 whether the button is checked
bool autoRepeat
 whether autoRepeat is enabled
bool autoExclusive
 whether auto-exclusivity is enabled
int autoRepeatDelay
 the initial delay of auto-repetition
int autoRepeatInterval
 the interval of auto-repetition
bool down
 whether the button is pressed down
Properties inherited from QWidget
bool modal
 whether the widget is a modal widget
Qt::WindowModality windowModality
 which windows are blocked by the modal widget
bool enabled
 whether the widget is enabled
QRect geometry
 the geometry of the widget relative to its parent and excluding the window frame
QRect frameGeometry
 geometry of the widget relative to its parent including any window frame
QRect normalGeometry
 the geometry of the widget as it will appear when shown as a normal (not maximized or full screen) top-level widget
int x
 the x coordinate of the widget relative to its parent including any window frame
int y
 the y coordinate of the widget relative to its parent and including any window frame
QPoint pos
 the position of the widget within its parent widget
QSize frameSize
 the size of the widget including any window frame
QSize size
 the size of the widget excluding any window frame
int width
 the width of the widget excluding any window frame
int height
 the height of the widget excluding any window frame
QRect rect
 the internal geometry of the widget excluding any window frame
QRect childrenRect
 the bounding rectangle of the widget's children
QRegion childrenRegion
 the combined region occupied by the widget's children
QSizePolicy sizePolicy
 the default layout behavior of the widget
QSize minimumSize
 the widget's minimum size
QSize maximumSize
 the widget's maximum size in pixels
int minimumWidth
 the widget's minimum width in pixels
int minimumHeight
 the widget's minimum height in pixels
int maximumWidth
 the widget's maximum width in pixels
int maximumHeight
 the widget's maximum height in pixels
QSize sizeIncrement
 the size increment of the widget
QSize baseSize
 the base size of the widget
QPalette palette
 the widget's palette
QFont font
 the font currently set for the widget
QCursor cursor
 the cursor shape for this widget
bool mouseTracking
 whether mouse tracking is enabled for the widget
bool tabletTracking
 whether tablet tracking is enabled for the widget
bool isActiveWindow
 whether this widget's window is the active window
Qt::FocusPolicy focusPolicy
 the way the widget accepts keyboard focus
bool focus
 whether this widget (or its focus proxy) has the keyboard input focus
Qt::ContextMenuPolicy contextMenuPolicy
 how the widget shows a context menu
bool updatesEnabled
 whether updates are enabled
bool visible
 whether the widget is visible
bool minimized
 whether this widget is minimized (iconified)
bool maximized
 whether this widget is maximized
bool fullScreen
 whether the widget is shown in full screen mode
QSize sizeHint
 the recommended size for the widget
QSize minimumSizeHint
 the recommended minimum size for the widget
bool acceptDrops
 whether drop events are enabled for this widget
QString windowTitle
 the window title (caption)
QIcon windowIcon
 the widget's icon
QString windowIconText
 the text to be displayed on the icon of a minimized window
double windowOpacity
 The level of opacity for the window.
bool windowModified
 whether the document shown in the window has unsaved changes
Qt::LayoutDirection layoutDirection
 the layout direction for this widget.
bool autoFillBackground
 whether the widget background is filled automatically
QString styleSheet
QLocale locale
 the widget's locale
QString windowFilePath
 the file path associated with a widget
Qt::InputMethodHints inputMethodHints
 What input method specific hints the widget has.
Properties inherited from QObject
QString objectName
 the name of this object

Additional Inherited Members

Public Types inherited from QWidget
enum  RenderFlag { DrawWindowBackground = 0x1 , DrawChildren = 0x2 , IgnoreMask = 0x4 }
 This enum describes how to render the widget when calling QWidget::render(). More...
Public Types inherited from QPaintDevice
enum  PaintDeviceMetric {
  PdmWidth = 1 , PdmHeight , PdmWidthMM , PdmHeightMM ,
  PdmNumColors , PdmDepth , PdmDpiX , PdmDpiY ,
  PdmPhysicalDpiX , PdmPhysicalDpiY , PdmDevicePixelRatio , PdmDevicePixelRatioScaled ,
  PdmDevicePixelRatioF_EncodedA , PdmDevicePixelRatioF_EncodedB
}
Public Slots inherited from QAbstractButton
void setIconSize (const QSize &size)
void animateClick ()
 Performs an animated click: the button is pressed immediately, and released 100ms later.
void click ()
 Performs a click.
void toggle ()
 Toggles the state of a checkable button.
void setChecked (bool)
Public Slots inherited from QWidget
void setEnabled (bool)
void setDisabled (bool)
 Disables widget input events if disable is true; otherwise enables input events.
void setWindowModified (bool)
void setWindowTitle (const QString &)
void setStyleSheet (const QString &styleSheet)
void setFocus ()
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the \l{isActiveWindow()}{active window}.
void update ()
 Updates the widget unless updates are disabled or the widget is hidden.
void repaint ()
 Repaints the widget directly by calling paintEvent() immediately, unless updates are disabled or the widget is hidden.
virtual void setVisible (bool visible)
void setHidden (bool hidden)
 Convenience function, equivalent to setVisible(!
void show ()
 Shows the widget and its child widgets.
void hide ()
 Hides the widget.
void showMinimized ()
 Shows the widget minimized, as an icon.
void showMaximized ()
 Shows the widget maximized.
void showFullScreen ()
 Shows the widget in full-screen mode.
void showNormal ()
 Restores the widget after it has been maximized or minimized.
bool close ()
 Closes this widget.
void raise ()
 Raises this widget to the top of the parent widget's stack.
void lower ()
 Lowers the widget to the bottom of the parent widget's stack.
Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
Signals inherited from QAbstractButton
void pressed ()
 This signal is emitted when the button is pressed down.
void released ()
 This signal is emitted when the button is released.
void clicked (bool checked=false)
 This signal is emitted when the button is activated (i.e., pressed down then released while the mouse cursor is inside the button), when the shortcut key is typed, or when click() or animateClick() is called.
void toggled (bool checked)
 This signal is emitted whenever a checkable button changes its state.
Signals inherited from QWidget
void windowTitleChanged (const QString &title)
 This signal is emitted when the window's title has changed, with the new title as an argument.
void windowIconChanged (const QIcon &icon)
 This signal is emitted when the window's icon has changed, with the new icon as an argument.
void windowIconTextChanged (const QString &iconText)
 This signal is emitted when the window's icon text has changed, with the new iconText as an argument.
void customContextMenuRequested (const QPoint &pos)
 This signal is emitted when the widget's \l contextMenuPolicy is Qt::CustomContextMenu, and the user has requested a context menu on the widget.
Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
Static Public Member Functions inherited from QWidget
static void setTabOrder (QWidget *, QWidget *)
 Puts the second widget after the first widget in the focus order.
static void setTabOrder (std::initializer_list< QWidget * > widgets)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
static QWidgetmouseGrabber ()
 Returns the widget that is currently grabbing the mouse input.
static QWidgetkeyboardGrabber ()
 Returns the widget that is currently grabbing the keyboard input.
static QWidgetfind (WId)
 Returns a pointer to the widget with window identifier/handle id.
static QWidgetcreateWindowContainer (QWindow *window, QWidget *parent=nullptr, Qt::WindowFlags flags=Qt::WindowFlags())
 Creates a QWidget that makes it possible to embed window into a QWidget-based application.
Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
template<typename Func1, typename Func2>
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
template<typename Func1, typename Func2>
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
template<typename Func1, typename Func2>
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
template<typename Func1>
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
Static Public Member Functions inherited from QPaintDevice
static qreal devicePixelRatioFScale ()
static int encodeMetricF (PaintDeviceMetric metric, double value)
Protected Slots inherited from QWidget
void updateMicroFocus (Qt::InputMethodQuery query=Qt::ImQueryAll)
 Updates the widget's micro focus and informs input methods that the state specified by query has changed.
Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
Protected Attributes inherited from QPaintDevice
ushort painters

Detailed Description

The QPushButton widget provides a command button.

\inmodule QtWidgets

{Push button for creating a new document}

The push button, or command button, is perhaps the most commonly used widget in any graphical user interface. Push (click) a button to command the computer to perform some action, or to answer a question. Typical buttons are OK, Apply, Cancel, Close, Yes, No and Help.

A command button is rectangular and typically displays a text label describing its action. A shortcut key can be specified by preceding the preferred character with an ampersand in the text. For example:

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

In this example the shortcut is {Alt+D}. See the \l {QShortcut#mnemonic}{QShortcut} documentation for details (to display an actual ampersand, use '&&').

Push buttons display a textual label, and optionally a small icon. These can be set using the constructors and changed later using setText() and setIcon(). If the button is disabled, the appearance of the text and icon will be manipulated with respect to the GUI style to make the button look "disabled".

A push button emits the signal clicked() when it is activated by the mouse, the Spacebar or by a keyboard shortcut. Connect to this signal to perform the button's action. Push buttons also provide less commonly used signals, for example pressed() and released().

Command buttons in dialogs are by default auto-default buttons, i.e., they become the default push button automatically when they receive the keyboard input focus. A default button is a push button that is activated when the user presses the Enter or Return key in a dialog. You can change this with setAutoDefault(). Note that auto-default buttons reserve a little extra space which is necessary to draw a default-button indicator. If you do not want this space around your buttons, call setAutoDefault(false).

Being so central, the button widget has grown to accommodate a great many variations in the past decade. The Microsoft style guide now shows about ten different states of Windows push buttons and the text implies that there are dozens more when all the combinations of features are taken into consideration.

The most important modes or states are: \list

  • Available or not (grayed out, disabled).
  • Standard push button, toggling push button or menu button.
  • On or off (only for toggling push buttons).
  • Default or normal. The default button in a dialog can generally be "clicked" using the Enter or Return key.
  • Auto-repeat or not.
  • Pressed down or not. \endlist

As a general rule, use a push button when the application or dialog window performs an action when the user clicks on it (such as Apply, Cancel, Close and Help) and when the widget is supposed to have a wide, rectangular shape with a text label. Small, typically square buttons that change the state of the window rather than performing an action (such as the buttons in the top-right corner of the QFileDialog) are not command buttons, but tool buttons. Qt provides a special class (QToolButton) for these buttons.

If you need toggle behavior (see setCheckable()) or a button that auto-repeats the activation signal when being pushed down like the arrows in a scroll bar (see setAutoRepeat()), a command button is probably not what you want. When in doubt, use a tool button.

Note
On \macos when a push button's width becomes smaller than 50 or its height becomes smaller than 30, the button's corners are changed from round to square. Use the setMinimumSize() function to prevent this behavior.

A variation of a command button is a menu button. These provide not just one command, but several, since when they are clicked they pop up a menu of options. Use the method setMenu() to associate a popup menu with a push button.

Other classes of buttons are option buttons (see QRadioButton) and check boxes (see QCheckBox).

In Qt, the QAbstractButton base class provides most of the modes and other API, and QPushButton provides GUI logic. See QAbstractButton for more information about the API.

See also
QToolButton, QRadioButton, QCheckBox

Definition at line 20 of file qpushbutton.h.

Constructor & Destructor Documentation

◆ QPushButton() [1/4]

QPushButton::QPushButton ( QWidget * parent = nullptr)
explicit

Constructs a push button with no text and a parent.

Definition at line 205 of file qpushbutton.cpp.

◆ QPushButton() [2/4]

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

Constructs a push button with the parent parent and the text text.

Definition at line 217 of file qpushbutton.cpp.

◆ QPushButton() [3/4]

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

Constructs a push button with an icon and a text, and a parent.

Note that you can also pass a QPixmap object as an icon (thanks to the implicit type conversion provided by C++).

Definition at line 231 of file qpushbutton.cpp.

◆ ~QPushButton()

QPushButton::~QPushButton ( )

Destroys the push button.

Definition at line 250 of file qpushbutton.cpp.

◆ QPushButton() [4/4]

QPushButton::QPushButton ( QPushButtonPrivate & dd,
QWidget * parent = nullptr )
protected

Definition at line 240 of file qpushbutton.cpp.

Member Function Documentation

◆ autoDefault()

bool QPushButton::autoDefault ( ) const

Definition at line 318 of file qpushbutton.cpp.

◆ event()

bool QPushButton::event ( QEvent * e)
overrideprotectedvirtual

\reimp

Reimplemented from QAbstractButton.

Definition at line 667 of file qpushbutton.cpp.

◆ focusInEvent()

void QPushButton::focusInEvent ( QFocusEvent * e)
overrideprotectedvirtual

\reimp

Reimplemented from QAbstractButton.

Definition at line 440 of file qpushbutton.cpp.

◆ focusOutEvent()

void QPushButton::focusOutEvent ( QFocusEvent * e)
overrideprotectedvirtual

\reimp

Reimplemented from QAbstractButton.

Definition at line 457 of file qpushbutton.cpp.

◆ hitButton()

bool QPushButton::hitButton ( const QPoint & pos) const
overrideprotectedvirtual

\reimp

Reimplemented from QAbstractButton.

Definition at line 501 of file qpushbutton.cpp.

◆ initStyleOption()

void QPushButton::initStyleOption ( QStyleOptionButton * option) const
protectedvirtual

Initialize option with the values from this QPushButton.

This method is useful for subclasses when they need a QStyleOptionButton, but don't want to fill in all the information themselves.

See also
QStyleOption::initFrom()

Reimplemented in QCommandLinkButton.

Definition at line 275 of file qpushbutton.cpp.

◆ isDefault()

bool QPushButton::isDefault ( ) const

Definition at line 347 of file qpushbutton.cpp.

◆ isFlat()

bool QPushButton::isFlat ( ) const

Definition at line 660 of file qpushbutton.cpp.

◆ keyPressEvent()

void QPushButton::keyPressEvent ( QKeyEvent * e)
overrideprotectedvirtual

\reimp

Reimplemented from QAbstractButton.

Definition at line 421 of file qpushbutton.cpp.

◆ minimumSizeHint()

QSize QPushButton::minimumSizeHint ( ) const
overridevirtual

\reimp

Reimplemented from QWidget.

Definition at line 403 of file qpushbutton.cpp.

◆ mouseMoveEvent()

void QPushButton::mouseMoveEvent ( QMouseEvent * e)
overrideprotectedvirtual

\reimp

Reimplemented from QAbstractButton.

Definition at line 480 of file qpushbutton.cpp.

◆ paintEvent()

void QPushButton::paintEvent ( QPaintEvent * )
overrideprotectedvirtual

\reimp

Implements QAbstractButton.

Definition at line 411 of file qpushbutton.cpp.

◆ setAutoDefault()

void QPushButton::setAutoDefault ( bool enable)

Definition at line 306 of file qpushbutton.cpp.

◆ setDefault()

void QPushButton::setDefault ( bool enable)

Definition at line 326 of file qpushbutton.cpp.

◆ setFlat()

void QPushButton::setFlat ( bool flat)

Definition at line 648 of file qpushbutton.cpp.

◆ sizeHint()

QSize QPushButton::sizeHint ( ) const
overridevirtual

\reimp

Reimplemented from QWidget.

Definition at line 356 of file qpushbutton.cpp.

Property Documentation

◆ autoDefault

bool QPushButton::autoDefault
readwrite

whether the push button is an auto default button

If this property is set to true then the push button is an auto default button.

In some GUI styles a default button is drawn with an extra frame around it, up to 3 pixels or more. Qt automatically keeps this space free around auto-default buttons, i.e., auto-default buttons may have a slightly larger size hint.

This property's default is true for buttons that have a QDialog parent; otherwise it defaults to false.

See the \l default property for details of how \l default and auto-default interact.

Definition at line 24 of file qpushbutton.h.

◆ default

bool QPushButton::default
readwrite

whether the push button is the default button

Default and autodefault buttons decide what happens when the user presses enter in a dialog.

A button with this property set to true (i.e., the dialog's default button,) will automatically be pressed when the user presses enter, with one exception: if an autoDefault button currently has focus, the autoDefault button is pressed. When the dialog has \l autoDefault buttons but no default button, pressing enter will press either the \l autoDefault button that currently has focus, or if no button has focus, the next \l autoDefault button in the focus chain.

In a dialog, only one push button at a time can be the default button. This button is then displayed with an additional frame (depending on the GUI style).

The default button behavior is provided only in dialogs. Buttons can always be clicked from the keyboard by pressing Spacebar when the button has focus.

If the default property is set to false on the current default button while the dialog is visible, a new default will automatically be assigned the next time a push button in the dialog receives focus.

This property's default is false.

Definition at line 25 of file qpushbutton.h.

◆ flat

bool QPushButton::flat
readwrite

whether the button border is raised

This property's default is false. If this property is set, most styles will not paint the button background unless the button is being pressed. setAutoFillBackground() can be used to ensure that the background is filled using the QPalette::Button brush.

Definition at line 26 of file qpushbutton.h.


The documentation for this class was generated from the following files: