QSizeGrip Class
QSizeGrip 类提供了一个用于调整顶级窗口大小的调整大小控点。更多内容...
| 头文件: | #include <QSizeGrip> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 继承自: | QWidget |
公共函数
| QSizeGrip(QWidget *parent) | |
| virtual | ~QSizeGrip() |
重新实现的公共函数
| virtual void | setVisible(bool visible) override |
| virtual QSize | sizeHint() const override |
重新实现的受保护函数
| virtual bool | event(QEvent *event) override |
| virtual bool | eventFilter(QObject *o, QEvent *e) override |
| virtual void | hideEvent(QHideEvent *hideEvent) override |
| virtual void | mouseMoveEvent(QMouseEvent *event) override |
| virtual void | mousePressEvent(QMouseEvent *event) override |
| virtual void | mouseReleaseEvent(QMouseEvent *mouseEvent) override |
| virtual void | moveEvent(QMoveEvent *moveEvent) override |
| virtual void | paintEvent(QPaintEvent *event) override |
| virtual void | showEvent(QShowEvent *showEvent) override |
详细说明
此控件的工作方式与标准的 Windows 调整大小控点类似。在 X11 版本中,如果 X11 窗口管理器不支持必要的现代 ICCCM 之后规范,则此调整大小控点的工作方式通常与系统提供的控点不同。
将此控件放置在控件树的任意位置,用户即可通过它调整顶级窗口或任何设置了Qt::SubWindow 标志的控件的大小。通常,应将其放置在右下角。
请注意,QStatusBar 已经使用了该控件,因此如果您有状态栏(例如,您正在使用QMainWindow ),则无需显式使用该控件。QDialog 也是如此,对于它,您只需调用QDialog::setSizeGripEnabled() 即可。
在某些平台上,当窗口以全屏或最大化方式显示时,大小控点会自动隐藏。
注意:在 macOS上 ,大小控点已不再属于人机界面指南(HIG)的规范范围,除非在QMdiSubWindow 中使用,否则不会显示。若希望大小控点在主窗口中可见,请为其设置其他样式。

主窗口右下角的一个大小控点小部件,采用Fusion 小部件样式显示。
QSizeGrip 类继承自QWidget ,并重写了mousePressEvent() 和mouseMoveEvent() 函数以实现调整大小功能,同时重写了paintEvent() 函数以渲染大小控制柄控件。
另请参阅 QStatusBar 和QWidget::windowState()。
成员函数文档
[explicit] QSizeGrip::QSizeGrip(QWidget *parent)
将一个调整大小角作为给定parent 的子控件创建。
[virtual noexcept] QSizeGrip::~QSizeGrip()
摧毁这种尺寸的握把。
[override virtual protected] bool QSizeGrip::event(QEvent *event)
重写了:QWidget::event(QEvent *event)。
[override virtual protected] bool QSizeGrip::eventFilter(QObject *o, QEvent *e)
重写了:QObject::eventFilter(QObject *watched, QEvent *event)。
[override virtual protected] void QSizeGrip::hideEvent(QHideEvent *hideEvent)
重写了:QWidget::hideEvent(QHideEvent *event)。
[override virtual protected] void QSizeGrip::mouseMoveEvent(QMouseEvent *event)
重写:QWidget::mouseMoveEvent(QMouseEvent *event)。
调整包含此控件的顶级控件的大小。鼠标移动事件通过event 参数传递进来。
[override virtual protected] void QSizeGrip::mousePressEvent(QMouseEvent *event)
重写:QWidget::mousePressEvent(QMouseEvent *event)。
接收小部件的鼠标点击事件,并为调整大小操作做准备。鼠标点击事件通过event 参数传递进来。
[override virtual protected] void QSizeGrip::mouseReleaseEvent(QMouseEvent *mouseEvent)
重写了:QWidget::mouseReleaseEvent(QMouseEvent *event)。
[override virtual protected] void QSizeGrip::moveEvent(QMoveEvent *moveEvent)
重写了:QWidget::moveEvent(QMoveEvent *event)。
[override virtual protected] void QSizeGrip::paintEvent(QPaintEvent *event)
重写:QWidget::paintEvent(QPaintEvent *event)。
绘制调整大小的控制柄。
调整大小控点通常渲染为位于右下角的小型对角纹理线。绘制事件通过event 参数传递进来。
[override virtual] void QSizeGrip::setVisible(bool visible)
重新实现了属性QWidget::visible 的访问函数。
[override virtual protected] void QSizeGrip::showEvent(QShowEvent *showEvent)
重写了:QWidget::showEvent(QShowEvent *event)。
[override virtual] QSize QSizeGrip::sizeHint() const
重新实现了属性QWidget::sizeHint 的访问函数。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.