QWidget类是所有用户界面对象的基类。
Header: | #include <QWidget> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | |
Inherited By: | QDesignerActionEditorInterface QDesignerObjectInspectorInterface |
- 所有成员的列表,包括继承的成员
- 反对的成员(官方不推荐使用)
QWidge详细描述>>
【公共类型】
enum | RenderFlag { DrawWindowBackground, DrawChildren, IgnoreMask } |
该枚举描述了调用 QWidget::render () 时如何渲染控件。 | |
flags | RenderFlags |
RenderFlags 类型是 QFlags <RenderFlag> 的类型定义。它存储 RenderFlag 值的 OR 组合。 |
【属性】
acceptDrops : bool | 是否为此控件启用拖放事件,默认为false 。 如果控件是桌面( windowType () == Qt::Desktop ),则如果另一个应用程序正在使用桌面,则此操作可能会失败;您可以调用acceptDrops()来测试是否发生这种情况。 警告:请勿在拖放事件处理程序中修改此属性。 |
accessibleDescription : QString | 残障辅助。 |
accessibleName : QString | 残障辅助。 |
autoFillBackground : bool | 背景是否自动填充,默认为false 。 启用此属性将导致 Qt 在调用绘制事件之前填充控件背景,使用的颜色由控件的 palette 中的 QPalette::Window 颜色角色定义。 此外,Windows 始终填充 QPalette::Window ,除非设置了 WA_OpaquePaintEvent 或 WA_NoSystemBackground 属性。 如果控件的父级背景具有 static 渐变,则无法关闭此属性(即设置为 false)。 警告:将此属性与 Qt Style Sheets 结合使用时请谨慎。当控件带有有效背景或边框图像的样式表时,此属性将自动禁用。 |
baseSize : QSize | 该属性保存控件的基本尺寸。如果控件定义了 sizeIncrement(),则基本尺寸用于计算适当的控件大小。 默认情况下,对于新创建的控件,此属性包含宽度和高度为零的尺寸。 |
childrenRect : const QRect | 保存控件子级的边界矩形,隐藏的子项被排除在外。默认情况下,对于没有子项的 widget,此属性包含一个宽度和高度为零的矩形,该矩形位于原点。 |
childrenRegion : const QRegion | 此属性包含控件子项所占用的组合区域,隐藏的子项被排除在外。 默认情况下,对于没有子项的 widget,此属性包含一个空区域。 |
contextMenuPolicy : Qt::ContextMenuPolicy | 控件如何显示上下文菜单。 此属性的默认值为Qt::DefaultContextMenu,这意味着调用了contextMenuEvent() 处理程序。其他值为Qt::NoContextMenu, Qt::PreventContextMenu, Qt::ActionsContextMenu, and Qt::CustomContextMenu 。使用 Qt::CustomContextMenu,发出信号customContextMenuRequested() i。 |
cursor : QCursor | 光标形状。参阅: list of predefined cursor objects 编辑器控件可能使用 I-beam 光标 setCursor(Qt::IBeamCursor); 如果未设置光标或者在调用 unsetCursor()之后,则使用父级的光标。 默认情况下,此属性包含具有 Qt::ArrowCursor 形状的光标。 如果光标离开控件,即使鼠标被抓取,某些底层窗口实现也会重置光标。如果要为所有控件设置光标,即使在窗口外也是如此,请考虑QGuiApplication::setOverrideCursor()。 |
enabled : bool | 控件可用性。 启用的控件会处理键盘和鼠标事件,禁用的则不会,此属性默认为true。 禁用控件会隐式禁用其所有子项,启用将启用所有子控件,除非它们已被显式禁用。当其父控件保持禁用状态时,无法显式启用不是窗口的子控件。 |
focus : const bool | 是否具有键盘输入焦点,默认为falsh。获取控件的此属性值实际上等同于检查 QApplication::focusWidget() 是否引用了该控件。 |
focusPolicy : Qt::FocusPolicy | 接受键盘焦点的方式。 该策略明确控件是通过 Tab 键接受键盘焦点 Qt::TabFocus,还是通过单击接受焦点 Qt::ClickFocus ,亦或二者均能接受Qt::StrongFocus,或是根本不接受焦点Qt::NoFocus(默认)。 |
font : QFont | 此属性保存控件当前的字体。 默认值取决于系统环境。QApplication维护系统/主题字体,该字体是所有控件的默认字体。某些类型的控件也可能有特殊的字体默认值。您可以通过将自定义字体和控件的名称传递给QApplication::setFont()来自行定义控件的默认字体。最后,将字体与Qt的字体数据库进行匹配,以找到最合适的字体。 QWidget 将字体属性从父级传播到子级。如果更改字体上的特定属性并将该字体分配给控件,则该属性将传播到控件的所有子级,从而覆盖该属性的任何系统默认值。请注意,默认情况下,字体不会传播到窗口(请参阅 isWindow()),除非启用 Qt::WA_WindowPropagation属性。 QWidget的字体传播类似于它的palette传播。 当前样式用于渲染所有标准Qt控件的内容,可以自由选择使用控件字体,或者在某些情况下,忽略它(部分或完全)。特别是,某些样式(如 GTK 样式、Mac 样式和 Windows Vista 样式)会对控件字体应用特殊修改,以匹配平台的本机外观。因此,不能保证将属性分配给控件的字体会更改其的外观。对此,您也可以选择应用styleSheet。 注意: 如果Qt Style Sheets与 setFont()用于同一小部件,则在设置冲突时,样式表将优先。 |
frameGeometry : const QRect | 控件相对于其父项的几何图形,包括窗口框架 有关窗口布局问题的概述,请参阅文档Window Geometry 。 默认情况下,此属性包含一个值,该值取决于用户的平台和屏幕几何图形。 |
frameSize : const QSize | 此属性包含控件的大小,包括窗口框架 默认情况下,此属性包含一个值,该值取决于用户的平台和屏幕几何图形。 |
fullScreen : const bool | 控件是否以全屏模式显示,默认为 false。 |
geometry : QRect | 控件相对于其父级的几何图形,但不包括窗口框架。默认情况下,此属性包含一个值,该值取决于用户的平台和屏幕几何图形。
|
height : const int | 此属性保存控件的高度,不包括窗口框架。 |
inputMethodHints : Qt::InputMethodHints | 特定于输入法的提示控件才具有。这个属性仅与输入控件相关。输入法使用它来检索有关输入法应如何操作的提示。例如,如果设置了标志,则输入法可能会更改其视觉组件,以反映只能输入数字。 |
isActiveWindow : const bool | 此属性保存此控件的窗口是否为活动窗口,活动窗口是包含具有键盘焦点的控件的窗口(如果窗口没有控件或其任何控件都不接受键盘焦点,则该窗口仍可能具有焦点)。 当弹出窗口可见时,此属性在活动窗口和弹出窗口可同时为true。 默认此属性为false。 |
layoutDirection : Qt::LayoutDirection | 此属性保存控件的布局方向。 默认情况下,此属性设置为 Qt::LeftToRight。 当在控件上设置布局方向时,它将传播到控件的子级,但不会传播到作为窗口的子级,也不会传播到已显式调用setLayoutDirection()的子级。此外,在为父级调用 setLayoutDirection()后添加的子控件不会继承父级的布局方向。 |
locale : QLocale | 此属性保存该控件的区域设置。 只要没有设置特殊的区域设置,那要么是父级的区域设置,或者(如果此控件是顶级控件)是默认的区域设置。 如果控件显示日期或数字,则应该使用控件的区域设置进行格式化。 |
maximized : const bool | 用于保存此控件是否最大化,此属性仅与 Windows 相关。 |
maximumHeight : int | 此属性保存控件的最大高度(以像素为单位)。 默认此属性值为 16777215。 |
maximumSize : QSize | 此属性保存控件的最大大小(以像素为单位),无法将控件调整为大于最大控件尺寸的大小。 注意: 宏QWIDGETSIZE_MAX定义限制了控件的最大尺寸。 |
maximumWidth : int | 此属性保存控件的最大宽度(以像素为单位)。 此属性与maximumSize 属性所持有的宽度相对应。 默认此属性值为 16777215。 |
minimized : const bool | 此属性用于保存此控件是否最小化(图标化),此属性仅与 Windows 相关。 默认为false。 |
minimumHeight : int | 此属性保存控件的最小高度(以像素为单位)。 此属性与属性minimumSize所持有的高度相对应。 默认值为 0。 |
minimumSize : QSize | 此属性保存控件的最小尺寸,默认此属性包含的宽度和高度为零。 |
minimumSizeHint : const QSize | 此属性包含控件的建议最小尺寸。 除非QLayout设置了minimumSize() 或将大小策略设置为 QSizePolicy::Ignore,否则绝不会将控件的大小调整为小于最小尺寸提示的大小。如果设置了minimumSize() ,则将忽略最小尺寸提示。 |
minimumWidth : int | 此属性保存控件的最小宽度(以像素为单位)。 此属性与属性minimumSize所持有的宽度相对应。 默认值为 0。 |
modal : const bool | 是否为模式控件,默认为false。 |
mouseTracking : bool | 是否为控件启用鼠标跟踪。 如果禁用鼠标跟踪(默认),则仅当鼠标移动时按下至少一个鼠标按钮时,控件才能收到鼠标移动事件。 如果启用鼠标跟踪,则即使未按下任何按钮,控件也能收到鼠标移动事件。 |
normalGeometry : const QRect | 此属性保存控件的几何图形,它在显示为普通(非最大化或全屏)的顶级控件时将显示。 如果控件已处于此状态,则普通几何开关将反映该控件的当前geometry()。 对于子控件,此属性始终包含一个空矩形。 默认情况下,此属性包含一个空矩形。 |
palette : QPalette | 此属性保存控件的palette。参见:QPalette> |
pos : QPoint | 此属性用于保存控件在其父窗口中的位置。 注意: 并非所有窗口系统都支持设置或查询顶级窗口位置。 |
rect : const QRect | 此属性保存控件的内部几何图形,不包括窗口框架。 此rect 属性等于QRect(0, 0, width(), height())。 默认情况下,此属性包含一个值,该值取决于用户的平台和屏幕几何图形。 |
size : QSize | 此属性保存控件的尺寸,不包括窗口框架。 如果控件在调整大小时可见,则它会立即收到resizeEvent()事件。如果控件当前不可见,则保证在显示之前接收事件。 如果大小超出 minimumSize() and maximumSize()定义的范围,则调整大小。 默认情况下,此属性包含一个值,该值取决于用户的平台和屏幕几何图形。 警告: 在resizeEvent() 中调用resize()或setGeometry() 会导致无限递归。 注意: 将大小设置为QSize(0, 0)将导致控件不显示在屏幕上。 |
sizeHint : const QSize | 此属性包含控件的推荐尺寸。 如果没有针对此控件的布局,则sizeHint()的默认实现将返回一个无效的大小,否则将返回该布局的首选大小。 |
sizeIncrement : QSize | 此属性保存控件的尺寸增量。
|
sizePolicy : QSizePolicy | 此属性保存控件的默认布局行为。 默认策略是 Preferred/Preferred,这意味着控件可以自由调整大小,但首选是sizeHint() 。类似按钮的设置大小策略,以指定它们可以水平拉伸,但垂直固定。这同样适用于QLineEdit、QSpinBox或可编辑的QComboBox和其他水平方向的小部件(QProgressBar)。 QToolButton'通常是方形的,因此它们允许在两个方向上增长。支持不同方向的 Widget(如 QSlider, QScrollBar or QHeader)仅以指定相应方向的拉伸。可以提供滚动条的小部件(通常是QScrollArea的子类)倾向于指定它们可以使用额外的空间,并且它们可以用小于sizeHint()的空间来凑合。 |
statusTip : QString | 此属性保存控件的状态提示,默认为空字符串。 |
styleSheet : QString | 此属性保存控件的样式表,样式表包含对控件样式自定义的文本描述。 详见:Qt Style Sheets |
tabletTracking : bool | 此属性用于保存是否为控件启用平板电脑跟踪。 |
toolTip : QString | 此属性保存控件的工具提示,默认为空字符串。 |
toolTipDuration : int | 控件工具提示持续的时间,以毫秒为单位。如果该值为 -1(默认值),则根据工具提示的长度计算持续时间。 |
updatesEnabled : bool | 是否启用更新,默认为true。 禁用控件会隐式禁用其所有子项。启用控件将启用除顶级控件或已显式禁用的控件之外的所有子控件。重新启用更新会隐式调用 widget上的update() 。 |
visible : bool | 是否可见。调用 setVisible(true) 或show()将控件设置为可见状态,如果控件在窗口之前的所有父控件都可见。如果祖先不可见,则在显示其所有祖先之前,控件不会变得可见。如果它的大小或位置发生了变化,Qt保证一个控件在显示之前得到移动和调整大小的事件。如果小部件尚未调整大小,Qt将使用adjustSize()将控件的大小调整为有用的默认值。 碰巧被屏幕上的其他窗口遮挡的控件被认为是可见的。这同样适用于图标化窗口和存在于另一个虚拟桌面上的窗口(在支持此概念的平台上)。当窗口系统更改其映射状态时,控件会接收自发的显示和隐藏事件,例如,当用户最小化窗口时会出现自发的隐藏事件,当窗口再次恢复时会收到自发的显示事件。 |
whatsThis : QString | 此属性包含“What's This”帮助文本,默认包含空字符串。 |
width : const int | 此属性保存控件的宽度,不包括窗口框架。 |
windowFilePath : QString | 此属性保存与控件关联的文件路径,仅对 Windows 有意义。它将文件路径与窗口相关联。如果您设置了文件路径,但尚未设置窗口标题,则Qt会将窗口标题设置为指定路径的文件名,该文件名由()获取。 如果在任何时候设置了窗口标题,则窗口标题优先,并且将显示标题而不是文件路径字符串。 默认情况下,此属性包含空字符串。 |
windowFlags : Qt::WindowFlags | 窗口标志是一个type(例如Qt::Dialog)和窗口系统的零个或多个提示(例如 Qt::FramelessWindowHint)的组合。 注意: 此函数在更改窗口的标志时调用setParent() ,从而导致控件被隐藏。您必须调用show()才能使控件再次可见。 |
windowIcon : QIcon | 此属性保存控件的图标,仅对 Windows 有意义。如果未设置图标,windowIcon() 将返回应用程序图标 (QApplication::windowIcon())。 |
windowModality : Qt::WindowModality | 此属性包含模式控件阻止的窗口,仅对 Windows 有意义。模式控件可防止其他窗口中的控件获取输入。此属性的值控制当控件可见时阻止哪些窗口。在窗口可见时更改此属性不起作用,您必须先hide()控件,然后再次show() 它。 默认情况下,此属性为Qt::NonModal 。 |
windowModified : bool | 此属性保存窗口中显示的文档是否具有未保存的更改。 修改后的窗口是指内容已更改但尚未保存到磁盘的窗口。此标志将具有不同的效果,因平台而异。在 macOS 上,关闭按钮将具有修改后的外观,在其他平台上,窗口标题将带有“*”(星号)。 窗口标题必须包含“[*]”占位符,该占位符指示“*”应显示的位置。通常,它应该出现在文件名之后(例如:“document1.txt[*] - 文本编辑器”)。如果未修改窗口,则只需删除占位符即可。 注意,如果一个控件被设置为修改,它的所有祖先也将被设置为修改。但是,如果您在控件上调用 setWindowModified(false) ,这将不会传播到其父节点,因为父节点的其他子节点可能已被修改。 |
windowOpacity : double | 此属性保存窗口的不透明度级别,默认1.0。 不透明度的有效范围是从 1.0(完全不透明)到 0.0(完全透明)。 警告: 将此属性从不透明更改为透明可能会发出 paintevent事件,需要在正确显示窗口之前进行处理。这主要影响QScreen::grabWindow()的使用。另请注意,半透明窗口的更新和调整大小明显慢于不透明窗口。 |
windowTitle : QString | 此属性保存窗口标题(标题),仅对顶级控件(如窗口和对话框)有意义。如果未设置标题,则标题基于windowFilePath,如果两者都未设置,则标题为空字符串。 如果使用该 windowModified 机制,则窗口标题必须包含“[*]”占位符,该占位符指示“*”应显示的位置。 在某些桌面平台(包括 Windows 和 Unix)上,如果设置了应用程序名称 (来自 QGuiApplication::applicationDisplayName),则会添加到窗口标题的末尾。这是由 QPA 插件完成的,因此它会显示给用户,但不是 windowTitle 字符串的一部分。 |
x : const int | 控件相对于其父级(包括任何窗口框架)的 x 坐标,默认为0。 |
y : const int | 控件相对于其父级(包括任何窗口框架)的 y 坐标,默认为0。 |
【公有函数】
QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | ||
构造一个widget,它是parent的子项,窗口标志设置为f。 如果parent为nullptr,则新widget将变为窗口。如果是另一个widget,则此widget将成为parent 中的子窗口。删除parent时,将删除该小widget。 widget flags 参数 , 通常为 0,但可以将其设置为自定义窗口的框架(即parent必须为nullptr )。要自定义这个frame,请使用由任何使用由任何窗口标志的按位OR组成的值。 如果将子widget添加到已经可见的widget,则必须显式显示该子widget以使其可见。 | ||
virtual | ~QWidget() | 销毁控件。首先删除此控件的所有子项。如果此控件是主widget,则应用程序将退出。 |
bool | acceptDrops() const | 启用拖放 |
QString | accessibleDescription() const | 残障辅助。 |
QString | accessibleName() const | 残障辅助。 |
QList<QAction *> | actions() const | 返回控件的Action列表(可能为空)。 |
void | activateWindow() | 将包含此控件的顶级widget设置为活动窗口。活动窗口是具有键盘输入焦点的可见顶级窗口。 |
void | addAction(QAction *action) | 将参数中的操作action追加到此widget的操作列表中。 该函数的部分重载会将新创建的action操作作为返回值。 该函数的部分重载会创建一个带有文本、图标和快捷方式(如果有)的新action并返回。 |
QAction * | addAction(const QString &text) | |
QAction * | addAction(const QIcon &icon, const QString &text) | |
QAction * | addAction(const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection) | |
QAction * | addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection) | |
QAction * | addAction(const QString &text, Args &&... args) | |
QAction * | addAction(const QIcon &icon, const QString &text, Args &&... args) | |
QAction * | addAction(const QString &text, const QKeySequence &shortcut) | |
QAction * | addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut) | |
QAction * | addAction(const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection) | |
QAction * | addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection) | |
QAction * | addAction(const QString &text, const QKeySequence &shortcut, Args &&... args) | |
QAction * | addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, Args &&... args) | |
void | addActions(const QList<QAction *> &actions) | |
void | adjustSize() | 调整控件的大小以适合其内容。 如果有效,则此函数使用 sizeHint() ,即大小提示的宽度和高度为 >= 0。否则,它将大小设置为覆盖所有子小部件的子矩形(所有子控件矩形的并集)。 对于 Windows,屏幕尺寸也被考虑在内。如果 sizeHint() 小于 (200, 100) 且大小策略为expanding,则窗口将至少为 (200, 100)。窗口的最大尺寸是屏幕宽度和高度的 2/3。 |
bool | autoFillBackground() const | 返回是否自动填充控件背景。 |
QPalette::ColorRole | backgroundRole() const | 返回控件的背景角色。 背景角色定义了用于渲染widget背景的 palette中的笔刷。 |
QBackingStore * | backingStore() const | 返回控件的绘画区域QBackingStore。 |
QSize | baseSize() const | 返回控件的基本大小。 |
QWidget * | childAt(int x, int y) const | 返回位于widget坐标系统position (x, y)的子控件 。如果指定位置没有可见的子控件,则该函数将返回nullptr。 |
QWidget * | childAt(const QPoint &p) const | 返回位于控件自身坐标系中的 p点处的可见子控件。 |
QRect | childrenRect() const | 返回控件子级的边界矩形。 |
QRegion | childrenRegion() const | 返回控件子项所占用的组合区域。 |
void | clearFocus() | 获取控件的键盘输入焦点。 如果控件具有焦点,则发送focus out event以告知它失去焦点。 此控件必须启用焦点设置才能获得键盘输入焦点,也就是说,它必须调用setFocusPolicy()。 |
void | clearMask() | 删除由setMask()设置的mask。 |
QMargins | contentsMargins() const | 返回控件的内容边距。 |
QRect | contentsRect() const | 返回控件边距内的区域。 |
Qt::ContextMenuPolicy | contextMenuPolicy() const | 返回控件如何显示上下文菜单。 |
QCursor | cursor() const | 返回控件光标形状。 |
WId | effectiveWinId() const | 返回控件的有效窗口系统标识符,即原生父窗口的窗口系统标识符。 如果控件是原生的,则此函数返回本机控件 ID。 否则,将返回第一个本机父控件的窗口 ID,即包含此控件的顶级控件。 注意: 建议不要存储此值,因为它可能会在运行时更改。 |
void | ensurePolished() const | 确保控件及其子项已经美化过,即具有适当的字体和调色板。 QWidget 在完全构造之后,但在第一次显示之前调用此函数。如果要确保在执行操作之前对控件进行润色,则可以调用此函数,例如,在控件的sizeHint() 重新实现正确的字体大小。注意,此函数是从sizeHint()的默认实现中调用的。 修整对于调用所有构造函数(来自基类和子类)之后必须进行的最终初始化非常有用。 如果在完善控件时需要更改某些设置,请重新实现event() 并处理QEvent::Polish 事件类型。 注意:该函数被声明为 const,以便可以从其他 const 函数(例如sizeHint())调用它。 |
Qt::FocusPolicy | focusPolicy() const | 返回控件接受键盘焦点的方式。 |
QWidget * | focusProxy() const | |
QWidget * | focusWidget() const | |
const QFont & | font() const | 返回控件设置的字体。 |
QFontInfo | fontInfo() const | |
QFontMetrics | fontMetrics() const | |
QPalette::ColorRole | foregroundRole() const | |
QRect | frameGeometry() const | 返回控件相对于其父项的几何图形,包括窗口框架。 |
QSize | frameSize() const | 返回控件的大小,包括窗口框架。 |
const QRect & | geometry() const | 返回控件相对于其父项的几何图形,但不包括窗口框架。 |
QPixmap | grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1))) | |
void | grabGesture(Qt::GestureType gesture, Qt::GestureFlags flags = Qt::GestureFlags()) | |
void | grabKeyboard() | |
void | grabMouse() | |
void | grabMouse(const QCursor &cursor) | |
int | grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut) | |
QGraphicsEffect * | graphicsEffect() const | |
QGraphicsProxyWidget * | graphicsProxyWidget() const | |
bool | hasEditFocus() const | |
bool | hasFocus() const | |
virtual bool | hasHeightForWidth() const | |
bool | hasMouseTracking() const | |
bool | hasTabletTracking() const | |
int | height() const | |
virtual int | heightForWidth(int w) const | |
Qt::InputMethodHints | inputMethodHints() const | |
virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const | |
void | insertAction(QAction *before, QAction *action) | |
void | insertActions(QAction *before, const QList<QAction *> &actions) | |
bool | isActiveWindow() const | 返回包含控件的窗口是否为活动窗口。 |
bool | isAncestorOf(const QWidget *child) const | |
bool | isEnabled() const | |
bool | isEnabledTo(const QWidget *ancestor) const | |
bool | isFullScreen() const | |
bool | isHidden() const | |
bool | isMaximized() const | 返回widget是否最大化。 |
bool | isMinimized() const | 返回widget是否最小化。 |
bool | isModal() const | |
bool | isVisible() const | |
bool | isVisibleTo(const QWidget *ancestor) const | |
bool | isWindow() const | |
bool | isWindowModified() const | |
QLayout * | layout() const | |
Qt::LayoutDirection | layoutDirection() const | 返回控件的布局方向。 |
QLocale | locale() const | 返回控件的区域设置。 |
QPointF | mapFrom(const QWidget *parent, const QPointF &pos) const | 将控件坐标pos转换为parent控件的坐标系。parent不能为nullptr,并且必须是调用控件的父级。 |
QPoint | mapFrom(const QWidget *parent, const QPoint &pos) const | |
QPointF | mapFromGlobal(const QPointF &pos) const | 将全局屏幕坐标pos转换为控件坐标。 |
QPoint | mapFromGlobal(const QPoint &pos) const | |
QPointF | mapFromParent(const QPointF &pos) const | 将坐标pos转换为父控件坐标。 如果控件没有父级,则与mapFromGlobal() 相同。 |
QPoint | mapFromParent(const QPoint &pos) const | |
QPointF | mapTo(const QWidget *parent, const QPointF &pos) const | |
QPoint | mapTo(const QWidget *parent, const QPoint &pos) const | |
QPointF | mapToGlobal(const QPointF &pos) const | |
QPoint | mapToGlobal(const QPoint &pos) const | |
QPointF | mapToParent(const QPointF &pos) const | |
QPoint | mapToParent(const QPoint &pos) const | |
QRegion | mask() const | 返回当前在控件上设置的mask。如果未设置,则返回空区域。 |
int | maximumHeight() const | |
QSize | maximumSize() const | 返回控件的最大尺寸。 |
int | maximumWidth() const | 返回控件的最大宽度。 |
int | minimumHeight() const | 返回控件的最大高度。 |
QSize | minimumSize() const | 返回控件的最小尺寸。 |
virtual QSize | minimumSizeHint() const | 返回控件建议的最小尺寸。 |
int | minimumWidth() const | 返回控件的最小宽度。 |
void | move(const QPoint &) | |
void | move(int x, int y) | |
QWidget * | nativeParentWidget() const | |
QWidget * | nextInFocusChain() const | |
QRect | normalGeometry() const | |
void | overrideWindowFlags(Qt::WindowFlags flags) | |
const QPalette & | palette() const | 返回控件的palette。 |
QWidget * | parentWidget() const | |
QPoint | pos() const | 返回控件相对于父控件或桌面的位置。 |
QWidget * | previousInFocusChain() const | |
QRect | rect() const | 返回控件内部几何图形,不包括窗口框架。 |
void | releaseKeyboard() | |
void | releaseMouse() | |
void | releaseShortcut(int id) | |
void | removeAction(QAction *action) | |
void | render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren)) | |
void | render(QPainter *painter, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren)) | |
void | repaint(int x, int y, int w, int h) | |
void | repaint(const QRect &rect) | |
void | repaint(const QRegion &rgn) | |
void | resize(const QSize &) | 返回控件大小。 |
void | resize(int w, int h) | |
bool | restoreGeometry(const QByteArray &geometry) | |
QByteArray | saveGeometry() const | |
QScreen * | screen() const | |
void | scroll(int dx, int dy) | |
void | scroll(int dx, int dy, const QRect &r) | |
void | setAcceptDrops(bool on) | |
void | setAccessibleDescription(const QString &description) | |
void | setAccessibleName(const QString &name) | |
void | setAttribute(Qt::WidgetAttribute attribute, bool on = true) | |
void | setAutoFillBackground(bool enabled) | |
void | setBackgroundRole(QPalette::ColorRole role) | |
void | setBaseSize(const QSize &) | |
void | setBaseSize(int basew, int baseh) | |
void | setContentsMargins(int left, int top, int right, int bottom) | |
void | setContentsMargins(const QMargins &margins) | |
void | setContextMenuPolicy(Qt::ContextMenuPolicy policy) | |
void | setCursor(const QCursor &) | |
void | setEditFocus(bool enable) | |
void | setFixedHeight(int h) | |
void | setFixedSize(const QSize &s) | |
void | setFixedSize(int w, int h) | |
void | setFixedWidth(int w) | |
void | setFocus(Qt::FocusReason reason) | |
void | setFocusPolicy(Qt::FocusPolicy policy) | |
void | setFocusProxy(QWidget *w) | |
void | setFont(const QFont &) | |
void | setForegroundRole(QPalette::ColorRole role) | |
void | setGeometry(const QRect &) | |
void | setGeometry(int x, int y, int w, int h) | |
void | setGraphicsEffect(QGraphicsEffect *effect) | |
void | setInputMethodHints(Qt::InputMethodHints hints) | |
void | setLayout(QLayout *layout) | |
void | setLayoutDirection(Qt::LayoutDirection direction) | |
void | setLocale(const QLocale &locale) | |
void | setMask(const QBitmap &bitmap) | |
void | setMask(const QRegion ®ion) | |
void | setMaximumHeight(int maxh) | |
void | setMaximumSize(const QSize &) | |
void | setMaximumSize(int maxw, int maxh) | |
void | setMaximumWidth(int maxw) | |
void | setMinimumHeight(int minh) | |
void | setMinimumSize(const QSize &) | |
void | setMinimumSize(int minw, int minh) | |
void | setMinimumWidth(int minw) | |
void | setMouseTracking(bool enable) | |
void | setPalette(const QPalette &) | |
void | setParent(QWidget *parent) | 指定Parent。 |
void | setParent(QWidget *parent, Qt::WindowFlags f) | 指定父控件。 |
void | setScreen(QScreen *screen) | |
void | setShortcutAutoRepeat(int id, bool enable = true) | |
void | setShortcutEnabled(int id, bool enable = true) | |
void | setSizeIncrement(const QSize &) | |
void | setSizeIncrement(int w, int h) | |
void | setSizePolicy(QSizePolicy) | |
void | setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical) | |
void | setStatusTip(const QString &) | |
void | setStyle(QStyle *style) | |
void | setTabletTracking(bool enable) | |
void | setToolTip(const QString &) | 设置工具提示。 |
void | setToolTipDuration(int msec) | |
void | setUpdatesEnabled(bool enable) | |
void | setWhatsThis(const QString &) | |
void | setWindowFilePath(const QString &filePath) | |
void | setWindowFlag(Qt::WindowType flag, bool on = true) | |
void | setWindowFlags(Qt::WindowFlags type) | |
void | setWindowIcon(const QIcon &icon) | |
void | setWindowModality(Qt::WindowModality windowModality) | |
void | setWindowOpacity(qreal level) | |
void | setWindowRole(const QString &role) | |
void | setWindowState(Qt::WindowStates windowState) | |
void | setupUi(QWidget *widget) | |
QSize | size() const | 返回窗口尺寸。 |
virtual QSize | sizeHint() const | |
QSize | sizeIncrement() const | |
QSizePolicy | sizePolicy() const | |
void | stackUnder(QWidget *w) | |
QString | statusTip() const | |
QStyle * | style() const | |
QString | styleSheet() const | |
bool | testAttribute(Qt::WidgetAttribute attribute) const | |
QString | toolTip() const | 返回工具提示。 |
int | toolTipDuration() const | |
bool | underMouse() const | |
void | ungrabGesture(Qt::GestureType gesture) | |
void | unsetCursor() | |
void | unsetLayoutDirection() | |
void | unsetLocale() | |
void | update(int x, int y, int w, int h) | update() 更新控件,除非禁用更新或隐藏控件。 此函数不会导致立即重绘,当Qt返回主事件循环时,它会安排一个paint event进行处理。 这三个重载只更新控件内的矩形。 |
void | update(const QRect &rect) | |
void | update(const QRegion &rgn) | |
void | updateGeometry() | 通知layout布局系统此控件已更改,可能需要更新几何图形。 如果 sizeHint() 和 sizePolicy() 已更改,则调用此函数。 对于显式隐藏的小部件,updateGeometry() 是一个 no-op禁止操作。一旦显示控件,布局系统将收到通知。 |
bool | updatesEnabled() const | |
QRegion | visibleRegion() const | |
QString | whatsThis() const | |
int | width() const | |
WId | winId() const | |
QWidget * | window() const | 返回此控件的窗口,即具有(或可能具有)窗口系统框架的下一个祖先控件。 |
QString | windowFilePath() const | |
Qt::WindowFlags | windowFlags() const | |
QWindow * | windowHandle() const | |
QIcon | windowIcon() const | 返回图标。 |
Qt::WindowModality | windowModality() const | |
qreal | windowOpacity() const | 返回窗口透明度。 |
QString | windowRole() const | 返回窗口的角色或空字符串。 |
Qt::WindowStates | windowState() const | 返回窗口状态。 |
QString | windowTitle() const | |
Qt::WindowType | windowType() const | |
int | x() const | |
int | y() const |
【重新实现的虚函数】
virtual QPaintEngine *paintEngine() const override 【>>>】
【槽函数】
bool | close() | 关闭 |
void | hide() | 隐藏 |
void | lower() | 将部件降低到父部件堆栈的底部。 |
void | raise() | 将部件降低到父部件堆栈的顶部。 |
void | repaint() | 立即调用 paintEvent()重绘控件,除非禁用更新或隐藏控件。 建议仅在需要立即重绘时才使用repaint() ,例如在动画期间。大多数情况下,update()更好,因为它允许Qt优化速度并最小化闪烁。 警告: 如果你在一个函数中调用repaint() ,而这个函数本身可能是从paintEvent()调用的,你可能会得到无限递归。 update() 函数永远不会导致递归。 |
void | setDisabled(bool disable) | 如果为 true,则禁用控件输入事件;否则启用输入事件。 |
void | setEnabled(bool) | 设置可用性。 |
void | setFocus() | 设置焦点。 |
void | setHidden(bool hidden) | 等价于setVisible(!hidden) |
void | setStyleSheet(const QString &styleSheet) | 设置样式表。 |
virtual void | setVisible(bool visible) | 设置可见性。 |
void | setWindowModified(bool) | 设置保存窗口中显示的文档是否具有未保存的更改。 |
void | setWindowTitle(const QString &) | 设置窗口标题(标题)。 |
void | show() | 显示控件及子控件。这等效于调用 showFullScreen(), showMaximized(), setVisible(true),具体取决于平台对窗口标志的默认行为。 |
void | showFullScreen() | 以全屏模式显示控件。调用此函数只会影响windows。要从全屏模式返回,请调用 showNormal() or close()。 |
void | showMaximized() | 显示最大化的控件。 |
void | showMinimized() | 将最小化的控件显示为图标。调用此函数只会影响windows 。 |
void | showNormal() | 在最大化或最小化后恢复控件。 |
void | update() | 更新控件,除非禁用更新或隐藏控件。 此功能不会立即重绘;相反,当Qt返回主事件循环时,它会安排一个paintevent事件进行处理。这允许Qt优化,以获得比调用repaint() 更快的速度和更少的闪烁。 多次调用 update() 通常只会导致一个paintEvent()调用。 Qt通常会在paintEvent()调用之前擦除控件的区域。如果设置了 widget 属性,则 widget 负责用不透明颜色绘制其所有像素。 |
【信号】
void | customContextMenuRequested(const QPoint &pos) |
void | windowIconChanged(const QIcon &icon) |
void | windowTitleChanged(const QString &title) |
【静态公有成员】
QWidget * | createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) |
QWidget * | find(WId id) |
QWidget * | keyboardGrabber() |
QWidget * | mouseGrabber() |
void | setTabOrder(QWidget *first, QWidget *second) |
void | setTabOrder(std::initializer_list<QWidget *> widgets) |
【受保护的函数】
virtual void | actionEvent(QActionEvent *event) | 事件处理器函数。 |
virtual void | changeEvent(QEvent *event) | 事件处理器函数。 |
virtual void | closeEvent(QCloseEvent *event) | 处理关闭事件的事件处理器函数。 默认行为是关闭件。可以重新实现此函数以更改控件响应窗口关闭请求的方式。例如,您可以通过调用ignore() 来阻止窗口关闭。 主窗口应用程序通常使用此函数的重新实现来检查用户的工作是否已保存,并在关闭之前请求许可。【示例】 |
virtual void | contextMenuEvent(QContextMenuEvent *event) | “上下文菜单事件”事件处理器函数。 |
void | create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true) | 创建一个新的组件窗口。 |
void | destroy(bool destroyWindow = true, bool destroySubWindows = true) | 释放窗口系统资源。如果为 true,则销毁控件窗口。 destroy() 以递归方式调用所有子控件的自身,传递参数。 此函数通常从析构函数调用。 |
virtual void | dragEnterEvent(QDragEnterEvent *event) | “拖拽某控件进入widget的瞬间”事件处理器函数。 |
virtual void | dragLeaveEvent(QDragLeaveEvent *event) | ”拖拽某控件离开widget的瞬间“事件处理器函数。 |
virtual void | dragMoveEvent(QDragMoveEvent *event) | “拖拽某控件时持续触发”事件处理器函数。 |
virtual void | dropEvent(QDropEvent *event) | “拖拽某控件的释放瞬间”事件处理器函数。 |
virtual void | enterEvent(QEnterEvent *event) | “光标进入控件瞬间”的事件处理器函数。 注意:参数中的QEnterEvent类是QT6新增的。 |
virtual void | focusInEvent(QFocusEvent *event) | “获得焦点”事件处理器函数。 |
bool | focusNextChild() | 查找按下键盘Tab后焦点指向的新控件,如果能找到返回true,找不到返回 false。 |
virtual bool | focusNextPrevChild(bool next) | 查找要为键盘提供焦点的新控件(适合Tab和Shift+Tab),如果能找返回 true,找不到返回 false。 如果next 为 true,则此函数向前搜索,如果next 为 false,则向后搜索。 有时,您需要重新实现此功能。例如,Web 浏览器可能会重新实现它以向前或向后移动其“当前活动链接”,并且仅在它到达“页面”上的最后一个或第一个链接时才调用 focusNextPrevChild()。 子控件在其父控件上调用 focusNextPrevChild(),但只有包含子控件的窗口才能决定将焦点重定向到何处。通过为对象重新实现此功能,您可以控制所有子控件的焦点遍历。 |
virtual void | focusOutEvent(QFocusEvent *event) | “失去焦点”事件处理器函数。 |
bool | focusPreviousChild() | 查找按下键盘Shift+Tab后焦点指向的新控件,如果能找到返回true,找不到返回 false |
virtual void | hideEvent(QHideEvent *event) | “当窗口或控件被隐藏”事件处理器函数。 |
virtual void | inputMethodEvent(QInputMethodEvent *event) | 事件处理器函数。 |
virtual void | keyPressEvent(QKeyEvent *event) | “键盘上某键被按下”事件处理器函数。 |
virtual void | keyReleaseEvent(QKeyEvent *event) | “键盘上某键被释放”事件处理器函数。 |
virtual void | leaveEvent(QEvent *event) | “光标离开控件瞬间”事件处理器函数。 |
virtual void | mouseDoubleClickEvent(QMouseEvent *event) | “双击鼠标”事件处理器函数。 |
virtual void | mouseMoveEvent(QMouseEvent *event) | “按着鼠标移动或不按着鼠标移动时”事件处理器函数。 |
virtual void | mousePressEvent(QMouseEvent *event) | “按下鼠标键时”事件处理器函数。(不区分左中右键) |
virtual void | mouseReleaseEvent(QMouseEvent *event) | “松开鼠标键时”事件处理器函数。 |
virtual void | moveEvent(QMoveEvent *event) | ”移动窗口“事件处理器函数。 |
virtual bool | nativeEvent(const QByteArray &eventType, void *message, qintptr *result) | 事件处理器函数。 |
virtual void | paintEvent(QPaintEvent *event) | 事件处理器函数。 此事件处理程序可以在子类中重新实现,以接收在事件中传递的绘图事件。 绘图事件是对重新绘制控件的全部或部分的请求。会因以下原因被调用: > 控件被遮挡,现在又重新显示 > 改变窗口大小等 许多控件可以在事件发生时简单地重绘其整个表面,但一些缓慢的控件可以通过QPaintEvent::region() 仅绘制请求的区域来优化。这种速度优化不会改变结果,因为在事件处理期间,绘画会被裁剪到该区域。QListView和QTableView经常这样做。 Qt还试图通过将多个绘画事件合并为一个来加快绘画速度。当update() 被多次调用或窗口系统发送多个绘制事件时,Qt会将这些事件合并为一个具有更大区域的事件(参见 QRegion::united())。repaint() 函数不允许这种优化,因此我们建议尽可能使用update() 。 当绘制事件发生时,更新区域通常已被擦除,因此您是在控件的背景上绘制。背景可以使用设置setBackgroundRole()和setPalette(). |
virtual void | resizeEvent(QResizeEvent *event) | 当控件具有新的尺寸时调用此事件处理器函数。 可以通过QResizeEvent::oldSize()访问旧尺寸。 在处理这个事件后,控件将被擦除并立即接收一个paintEvent事件。 【示例】 |
virtual void | showEvent(QShowEvent *event) | “当窗口或控件被显示”事件处理器函数。 |
virtual void | tabletEvent(QTabletEvent *event) | 事件处理器函数。 |
virtual void | wheelEvent(QWheelEvent *event) | “鼠标滚轮转动事件”事件处理器函数。 |
【重新实现的保护成员函数】
virtual bool | event(QEvent *event) override |
virtual void | initPainter(QPainter *painter) const override |
virtual int | metric(QPaintDevice::PaintDeviceMetric m) const override |
【受保护的槽】
void | updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll) |
更新控件的焦点,并通知输入法指定的query状态已更改。 |
【宏】
QWIDGETSIZE_MAX | 定义对象的最大大小。控件允许的最大大小为 (QWIDGETSIZE_MAX, QWIDGETSIZE_MAX),即 (16777215,16777215)。 |