Qt 命名空间
QtCore.Qt 命名空间下包含了整个 Qt 库中所使用的各种标识符。
这些标识符大多为枚举(enum)或标志(flags)类型。本文收录部分标识符文档的中文翻译,按字母顺序排列。
A
Alignment
Qt.AlignmentFlag 中又分为水平对齐方式与垂直对齐方式,具体有如下数种:
水平对齐:
常量 | 值 | 描述 |
---|---|---|
Qt.AlignLeft | 0x0001 | 与左边缘对齐 |
Qt.AlignRight | 0x0002 | 与右边缘对齐 |
Qt.AlignHCenter | 0x0004 | 在可用空间中水平居中 |
Qt.AlignJustify | 0x0008 | 两端对齐(尽可能使文字占满横向空间) |
垂直对齐:
常量 | 值 | 描述 |
---|---|---|
Qt.AlignTop | 0x0020 | 与顶部对齐 |
Qt.AlignBottom | 0x0040 | 与底部对齐 |
Qt.AlignVCenter | 0x0080 | 在可用空间中垂直居中 |
Qt.AlignBaseline | 0x0100 | 与基线对齐 |
若需同时设置水平、垂直两个维度的对齐方式,只需将两个Flags用或运算符连接,例如: Qt.AlignCenter
等价于 Qt.AlignVCenter | Qt.AlignHCenter
C
CursorMoveStyle
此枚举值描述文本光标移动的风格。逻辑风格中,键盘左箭头意味着光标向文本的前方移动(对于从右至左的文本,前方意味着右方);而视觉风格中,键盘左箭头意味着光标向视觉上的左侧移动,而不考虑文本书写方向。
常量 | 值 | 描述 |
---|---|---|
Qt.LogicalMoveStyle | 0 | 在从左至右的文本块内,按下键盘左方向键时减少光标位置,右方向键增加光标位置;在从右向左的文本块内相反。 |
Qt.VisualMoveStyle | 1 | 无论书写方向如何,按下键盘左方向键光标总会向左移动,按下右方向键光标向右移动。 |
F
FocusPolicy
常量 | 值 | 描述 |
---|---|---|
Qt.TabFocus | 0x1 | 通过键盘Tab键获取焦点 |
Qt.ClickFocus | 0x2 | 通过鼠标点击获取焦点 |
Qt.StrongFocus | TabFocus | ClickFocus |
Qt.WheelFocus | StrongFocus | 0x4 |
Qt.NoFocus | 0 | 该控件不接受焦点,QLabel等不需要用户键盘操作的控件的默认值 |
L
LayoutDirection
控制 Qt 的布局与文字方向。
常量 | 值 | 描述 |
---|---|---|
Qt.LeftToRight | 0 | 从左至右布局 |
Qt.RightToLeft | 1 | 从右至左布局 |
Qt.LayoutDirectionAuto | 2 | 自动布局 |
对于阿拉伯语、希伯来语等特定语言,需要从右至左布局。
S
ScrollBarPolicy
此枚举类型描述了 QAbstractScrollArea 滚动条的各种模式。水平滚动条与垂直滚动条的模式相互独立。
常量 | 值 | 描述 |
---|---|---|
Qt.ScrollBarAsNeeded | 0 | 只有当内容太大而无法容纳时,QAbstractScrollArea 才显示滚动条。此为默认值。 |
Qt.ScrollBarAlwaysOff | 1 | QAbstractScrollArea 永不显示滚动条。 |
Qt.ScrollBarAlwaysOn | 2 | QAbstractScrollArea 总显示一个滚动条。此属性在具有瞬态滚动条的操作系统上被忽略。 |
T
TextElideMode
此枚举值指定显示需省略的文本时省略号应出现的位置:
常量 | 值 | 描述 |
---|---|---|
Qt.ElideLeft | 0 | 省略号应出现在文本的开头。 |
Qt.ElideRight | 1 | 省略号应出现在文本的末尾。 |
Qt.ElideMiddle | 2 | 省略号应出现在文本的中间。 |
Qt.ElideNone | 3 | 省略号不应出现在文本中。 |
Qt.ElideMiddle
通常是最适合 URL 的选择(例如,"http://bugreports.qt.../QTWEBSITE-13/"),而 Qt.ElideRight
适合其他字符串。
TextFormat
常量 | 值 | 描述 |
---|---|---|
Qt.PlaintText | 0 | 将文本字符串解析为纯文本 |
Qt.RichText | 1 | 将文本字符串解析为富文本 |
Qt.AutoText | 2 | 自动识别为纯文本或富文本 |
Qt.MarkdownText | 3 | 将文本字符串解析为Markdown格式的文本 |
TextInteractionFlag
常量 | 值 | 描述 |
---|---|---|
Qt.NoTextInteraction | 0 | 不能与文本进行交互 |
Qt.TextSelectableByMouse | 1 | 可以使用鼠标选择文本,并用上下文菜单或标准键盘快捷键复制到剪贴板 |
Qt.TextSelectableByKeyboard | 2 | 可以用键盘上的光标键选择文本,会显示一个文本光标 |
Qt.LinksAccessibleByMouse | 4 | 链接高亮显示,并可用鼠标激活 |
Qt.LinksAccessibleByKeyboard | 8 | 链接可以使用Tab键获得焦点,并通过Enter键激活 |
Qt.TextEditable | 16 | 文本完全可编辑 |
Qt.TextEditorInteraction | TextSelectableByMouse | TextSelectableByKeyboard |
Qt.TextBrowserInteraction | TextSelectableByMouse | LinksAccessibleByMouse |
W
WindowModality
此枚举值用于控制窗口的模态行为。对话框窗口大多为模态窗口。
常量 | 值 | 描述 |
---|---|---|
Qt.NonModal | 0 | 窗口为非模态,不阻塞其他窗口的输入 |
Qt.WindowModal | 1 | 窗口对单个窗口结构层次为模态,阻塞对其父窗口(及其的兄弟窗口)、祖父窗口(及其兄弟窗口)的输入 |
Qt.ApplicationModal | 2 | 窗口对应用程序为模态,阻塞对所有窗口的输入 |
WindowType
此枚举值用于为控件指定各种窗口系统(window-system)属性。它们一般比较少见,但在少数情况下是必要的。其中一些标志取决于底层窗口管理器是否支持。
主要类型包括:
常量 | 值 | 描述 |
---|---|---|
Qt.Widget | 0x00000000 | QWidget 的默认类型。这种类型的控件如果有父控件则作为子控件,若没有父控件则为独立窗口。参见 Qt.Window 和 Qt.SubWindow。 |
Qt.Window | 0x00000001 | 表示该控件是一个窗口,不管该控件是否有父控件,一般带有一个窗口系统框架和一个标题栏。注意如果控件没有父对象,则无法取消设置此标志。 |
Qt.Dialog | 0x00000002 | Window |
Qt.Sheet | 0x00000004 | Window |
Qt.Popup | 0x00000008 | Window |
Qt.Tool | Popup | Dialog |
Qt.ToolTip | Popup | Sheet |
Qt.SplashScreen | ToolTip | Dialog |
Qt.SubWindow | 0x00000012 | 表明此控件是子窗口,例如 QMdiSubWindow 控件。 |
Qt.ForeignWindow | 0x00000020 | Window |
Qt.CoverWindow | 0x00000040 | Window |
还有许多标志可用于自定义顶级窗口的外观。这对其他窗口没有影响:
常量 | 值 | 描述 |
---|---|---|
Qt.MSWindowsFixedSizeDialogHint | 0x00000100 | 在微软 Windows 上为窗口提供一个细对话框边框。这种风格传统上用于固定大小的对话框。注意:不建议在多显示器环境中使用此标志,因为系统将强制窗口在跨屏幕移动时保持其原始大小,这在使用具有不同分辨率的显示器时尤其不受欢迎。 |
Qt.MSWindowsOwnDC | 0x00000200 | 在微软 Windows 上为窗口提供自己的显示上下文。 |
Qt.BypassWindowManagerHint | 0x00000400 | 此标志可用于向平台插件指示应禁用“所有”窗口管理器协议。根据应用程序运行的操作系统和窗口管理器运行的情况,该标志的行为会有所不同。该标志可用于获取未设置配置的本机窗口。 |
Qt.X11BypassWindowManagerHint | BypassWindowManagerHint | 完全绕过窗口管理器。这会导致一个完全不受管理的无边框窗口(即,除非手动调用 QWidget.activateWindow(),否则没有键盘输入)。 |
Qt.FramelessWindowHint | 0x00000800 | 生成无边框窗口。用户不能通过窗口系统移动或调整无边框窗口的大小。在 X11 上,标志的结果取决于窗口管理器及其理解 Motif 和/或 NETWM 的能力。大多数现有的现代窗口管理器都可以处理这个问题。 |
Qt.NoDropShadowWindowHint | 0x40000000 | 禁用在支持的平台上的窗口投影。 |
Qt.CustomizeWindowHint | 0x02000000 | 关闭默认窗口标题 hints。 |
Qt.WindowTitleHint | 0x00001000 | 为窗口添加标题栏。 |
Qt.WindowSystemMenuHint | 0x00002000 | 为窗口添加系统菜单,很可能是一个关闭按钮。如果想要隐藏/显示关闭按钮,更好的做法是使用 WindowCloseButtonHint。 |
Qt.WindowMinimizeButtonHint | 0x00004000 | 为窗口添加最小化按钮。在某些平台上,这意味着 WindowSystemMenuHint 也已生效。 |
Qt.WindowMaximizeButtonHint | 0x00008000 | 为窗口添加最大化按钮。在某些平台上,这意味着 WindowSystemMenuHint 也已生效。 |
Qt.WindowMinMaxButtonsHint | WindowMinimizeButtonHint | WindowMaximizeButtonHint |
Qt.WindowCloseButtonHint | 0x08000000 | 为窗口添加关闭按钮。在某些平台上,这意味着 WindowSystemMenuHint 也已生效。 |
Qt.WindowContextHelpButtonHint | 0x00010000 | 为对话框添加上下文帮助按钮。在某些平台上,这意味着 WindowSystemMenuHint 也已生效。 |
Qt.MacWindowToolBarButtonHint | 0x10000000 | 在 macOS 上添加一个工具栏按钮(即,在有工具栏的窗口的右上方的椭圆形按钮) |
Qt.WindowFullscreenButtonHint | 0x80000000 | 在 macOS 上添加一个全屏按钮 |
Qt.BypassGraphicsProxyWidget | 0x20000000 | 如果父控件已经嵌入,则阻止窗口及其子窗口自动将自己嵌入到 QGraphicsProxyWidget 中。如果希望控件始终是桌面上的顶级控件,则可以设置此标志,无论父控件是否已嵌入场景中。 |
Qt.WindowShadeButtonHint | 0x00020000 | 如果底层窗口管理器支持,则添加一个阴影按钮替代最小化按钮。 |
Qt.WindowStaysOnTopHint | 0x00040000 | 通知窗口系统该窗口应位于所有其他窗口之上。注意,在某些基于 X11 的窗口管理器上,还必须传递 Qt.X11BypassWindowManagerHint 才能使此标志正常工作。 |
Qt.WindowStaysOnBottomHint | 0x04000000 | 通知窗口系统该窗口应位于所有其他窗口之下。 |
Qt.WindowTransparentForInput | 0x00080000 | 通知窗口系统该窗口仅用于输出(显示某些内容)而不接受输入。因此输入事件应该像不存在一样略过。 |
Qt.WindowOverridesSystemGestures | 0x00100000 | 通知窗口系统该窗口实现了自己的一组手势,系统级的手势(例如三指切换屏幕)应当被禁用。 |
Qt.WindowDoesNotAcceptFocus | 0x00200000 | 通知窗口系统该窗口不接受输入焦点。 |
Qt.MaximizeUsingFullscreenGeometryHint | 0x00400000 | 通知窗口系统在最大化窗口时应尽可能多地使用可用的屏幕几何空间,包括可能被UI覆盖的区域(例如状态栏或应用程序启动器)。这可能会导致窗口被置于这些系统UI之下,具体情况取决于平台是否支持。启用该标志后,用户负责将 QScreen.availableGeometry() 也考虑在内,以便应用程序中需要用户交互的任何UI元素都不会被系统UI覆盖。 |
Qt.WindowType_Mask | 0x000000ff | 用于从窗口标志中提取窗口类型的掩码。 |
常用窗口的概述
QWindow
QWindow 是一个底层的窗口抽象,它表示屏幕上的一个矩形区域。它主要用于处理与平台相关的窗口细节,例如窗口的透明度、形状等。QWindow 通常不是直接用来创建用户界面的,而是作为更高级别的窗口类的基础。如果你需要处理底层的窗口事件或者做一些特定于平台的操作,那么你可能会用到 QWindow。
QWidget
QWidget 是所有用户界面对象的基类。它是一个简单的 GUI 小部件,可以用来构建自定义的窗口小部件。QWidget 可以作为一个独立的窗口,也可以作为其他小部件的一部分嵌入到更复杂的布局中。它是创建基本窗口和对话框的起点,可以非常灵活地设置其属性和行为。
适用场景:
- 创建基本的应用程序窗口。
- 作为其他更复杂小部件的容器。
- 自定义控件开发。
QDialog
QDialog 是一个模态或非模态对话框。它是一个特殊的 QWidget,通常用来显示一个短暂的任务,比如一个信息提示、警告或者是让用户做出选择。对话框通常会阻止用户与主窗口交互直到它们被关闭(如果是模态的话)。
适用场景:
- 收集用户输入。
- 显示警告或错误信息。
- 提供选项让用户进行选择。
QMainWindow
QMainWindow 是一个带有菜单栏、工具栏和状态栏的主窗口。它通常用于创建具有复杂用户界面的应用程序,提供了很多常用的组件,如 Dock Widgets 和 Central Widget。
适用场景:
- 复杂的应用程序,如文本编辑器、图像编辑器等。
- 需要有菜单栏、工具栏和状态栏的应用程序。
QFrame
QFrame 是一个可以绘制边框和阴影的容器小部件。虽然它本身不提供太多功能,但它可以用来创建自定义外观的用户界面元素。
适用场景:
- 创建自定义的UI元素,如带边框的面板。
- 作为其他小部件的容器,提供视觉上的分隔。
QStackedWidget
QStackedWidget 是一个堆叠小部件容器,可以用来切换不同的页面或视图。它通常用于实现类似于标签页或导航菜单的效果。
适用场景:
- 实现多页面布局,如标签页界面。
- 动态切换不同的视图或页面。
QTabWidget
QTabWidget 是一个带有标签页的小部件容器,用于组织多个相关的小部件,每个小部件都有一个标签。
适用场景:
- 创建标签页界面,如浏览器或文件管理器中的标签页。
- 组织多个相关的小部件。
QToolBox
QToolBox 是一个带有工具箱样式的容器小部件,每个工具项都有一个标题和一个小部件。
适用场景:
- 创建带有工具箱样式的界面,如设置或配置页面。
QMdiArea
QMdiArea 是一个多文档界面(MDI)容器,允许在一个主窗口中打开多个子窗口。
适用场景:
- 创建支持多文档界面的应用程序,如文本编辑器或集成开发环境(IDE)。
QWizard
QWizard 是一个向导窗口,用于引导用户完成一系列步骤或任务。
适用场景:
- 创建向导或设置向导,逐步引导用户完成某个过程。
- 复杂的设置或安装过程。
QSplitter
QSplitter 是一个分割器小部件,可以用来组织多个小部件,并允许用户调整它们的大小。
适用场景:
- 创建可调整大小的多视图布局,如文本编辑器中的编辑区和预览区。
QScrollArea
QScrollArea 是一个滚动区域,允许在其内部放置一个可以滚动的小部件。
适用场景:
- 创建可以滚动的区域,如长文档或大图像的查看器。
QOpenGLWidget
QOpenGLWidget 是一个用于渲染 OpenGL 内容的小部件。
适用场景:
- 渲染复杂的图形或动画。
- 开发需要高性能图形的应用程序。
评论区