QtShellSurface QML Type
提供了一种识别和调整曲面大小的简便方法。更多...
| Import Statement: | import QtWayland.Compositor.QtShell |
| Since: | Qt 6.3 |
属性
- active : bool
- capabilities : enum
- frameMarginBottom : int
- frameMarginLeft : int
- frameMarginRight : int
- frameMarginTop : int
- maximumSize : size
- minimumSize : size
- surface : WaylandSurface
- windowFlags : int
- windowGeometry : rect
- windowPosition : point
- windowState : int
- windowTitle : string
信号
- void startMove()
- void startResize(enum edges)
方法
- void initialize(QtShell qtShell, WaylandSurface surface, WaylandResource resource)
- void requestWindowGeometry(int windowState, rect windowGeometry)
- void sendClose()
详细说明
该类型属于QtShell 扩展的一部分,提供了一种方法,可为现有的WaylandSurface 添加窗口管理功能。
QtShellSurface 类型包含创建支持QtShell 扩展的合成器所需的核心功能。根据合成器的具体需求,可以直接使用该类型,也可通过QtShellChrome 类型间接使用。QtShellChrome 类型提供了默认行为以及用于操作 QtShellSurface 对象的便捷 API。
属性文档
active : bool
该属性与曲面当前是否被视为活动状态无关。
注意: 在QtShellSurface 中,没有 限制规定 多个表面不能同时处于活动状态。此类逻辑必须由合成器自身实现,或者通过使用QtShellChrome 类型来实现,该类型将自动管理表面的激活状态。
capabilities : enum
该属性存储合成器的功能。默认情况下,未启用任何特殊功能。
- QtShellSurface.InteractiveMove 客户端可通过调用QWindow::startSystemMove() 触发服务器端的交互式移动操作。合成器将通过startMove() 信号收到此通知。
- QtShellSurface.InteractiveResize 客户端可以使用 `QWindow::startSystemResize()` 触发服务器端的交互式调整大小操作。合成器将通过 `startResize()` 信号收到此通知。
frameMarginBottom : int
这将使窗框的下边缘位于表面下方。
frameMarginLeft : int
这会将窗口边框的边距固定在表面的左侧。
frameMarginRight : int
这会将窗口框架的边距固定在画面的右侧。
frameMarginTop : int
这可使窗框与表面之间保持一定间隙。
maximumSize : size [read-only]
如果客户端指定了窗口大小,则为该窗口的最大尺寸。否则,该尺寸无效。
minimumSize : size [read-only]
如果客户端指定了窗口大小,则此处为窗口的最小尺寸。否则,该尺寸无效。
surface : WaylandSurface [read-only]
该属性保存了与该QtShellSurface 关联的表面。
windowFlags : int [read-only]
该属性保存了QtShellSurface 的窗口标志。
windowGeometry : rect [read-only]
该属性保存了外壳表面的窗口几何信息。
windowPosition : point
该属性保存了壳体表面相对于其输出的位置。
windowState : int [read-only]
该属性保存了QtShellSurface 的窗口状态。
注意:当 调用requestWindowGeometry()来更新表面状态时 ,windowState 属性不会立即更新,而是要等到客户端确认状态变化后才会更新。
windowTitle : string [read-only]
该属性存储QtShellSurface 的窗口标题。
Signal 文档
void startMove()
客户端通过调用QWindow::startSystemMove(),请求在合成器中执行交互式移动操作。
注意: 相应的处理程序 为onStartMove 。
另请参阅 capabilities 。
void startResize(enum edges)
客户端通过调用 `QWindow::startSystemResize()` 请求在合成器中执行交互式调整大小操作。
edges 提供了有关在调整大小过程中应移动窗口哪个边缘的信息。它是一个包含以下值的掩码:
- Qt.TopEdge
- Qt.LeftEdge
- Qt.RightEdge
- Qt.TopEdge
注意: 相应的处理程序 是 `onStartResize`。
另请参阅 capabilities 。
方法文档
void initialize(QtShell qtShell, WaylandSurface surface, WaylandResource resource)
初始化QtShellSurface ,并将它与给定的qtShell 、surface 和resource 相关联。
void requestWindowGeometry(int windowState, rect windowGeometry)
请求为QtShellSurface 创建新的windowState 和windowGeometry 。当客户端确认该请求后(此时可以安全地假设,如果需要,该表面的缓冲区已调整大小),状态和几何信息将被更新。
void sendClose()
请求客户端应用程序自行关闭。
© 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.