QWidget类
Properties
acceptDrops : bool
当您要通过第三方信号/插槽机制使用Qt信号和插槽时,请使用此宏替换类声明中的slot关键字。
通常在.pro文件中使用CONFIG变量指定no_keywords时使用该宏,但是即使未指定no_keywords时也可以使用该宏。
访问功能:

bool acceptDrops() const
void setAcceptDrops(bool on)
另请参见拖放。
accessibleDescription : QString
此属性保存辅助技术所看到的小部件的描述。
小部件的可访问描述应传达小部件的功能。
尽管accessibleName应该是简短的字符串(例如,保存),但说明应提供更多上下文,例如保存当前文档。
此属性必须本地化。默认情况下,此属性包含一个空字符串,并且Qt退回到使用工具提示来提供此信息。
访问功能:
QString accessibleDescription() const
void setAccessibleDescription(const QString &description)
另请参见QWidget :: accessibleName和QAccessibleInterface :: text()。
accessibleName : QString
此属性保存辅助技术看到的窗口小部件的名称。
这是诸如屏幕阅读器之类的辅助技术宣布此窗口小部件的主要名称。
对于大多数窗口小部件,不需要设置此属性。例如,对于QPushButton,将使用按钮的文本。
当窗口小部件不提供任何文本时,设置此属性很重要。例如,仅包含图标的按钮需要设置此属性才能与屏幕阅读器一起使用。该名称应简短,并且与小部件传达的视觉信息等效。此属性必须本地化。默认情况下,此属性包含一个空字符串。
访问功能:
QString accessibleName() const
void setAccessibleName(const QString &name)
另请参见QWidget :: accessibleDescription和QAccessibleInterface :: text()。
autoFillBackground : bool
此属性保存是否自动填充窗口小部件背景如果启用,此属性将导致Qt在调用paint事件之前填充窗口小部件的背景。
使用的颜色由小部件调色板中的QPalette :: Window颜色角色定义。
此外,除非设置了WA_OpaquePaintEvent或WA_NoSystemBackground属性,否则Windows始终会用QPalette :: Window填充。
如果小部件的父级对其背景具有静态渐变,则无法关闭此属性(即,将其设置为false)。警告:请谨慎使用此属性和Qt样式表。
当窗口小部件的样式表具有有效的背景或边框图像时,将自动禁用此属性。默认情况下,此属性为false。此属性在Qt 4.1中引入。
访问功能:
bool autoFillBackground() const
void setAutoFillBackground(bool enabled)
另请参见Qt :: WA_OpaquePaintEvent,Qt :: WA_NoSystemBackground以及透明和双缓冲。
baseSize : QSize
此属性保存小部件的基本大小。如果小部件定义sizeIncrement(),则基本大小用于计算适当的小部件大小。
默认情况下,对于新创建的小部件,此属性包含一个宽度和高度为零的大小。
访问功能:
QSize baseSize() const
void setBaseSize(const QSize &)
void setBaseSize(int basew, int baseh)

另请参见setSizeIncrement()。
childrenRect : const QRect
此属性保存小部件的子项的边界矩形。不包括隐藏的子项。默认情况下,对于没有子代的小部件,此属性包含一个位于原点的宽度和高度为零的矩形。
访问功能:
QRect childrenRect() const
另请参见childrenRegion()和geometry()。
childrenRegion : const QRegion
此属性保存由小部件的子项占据的合并区域。不包括隐藏子项。默认情况下,对于没有子代的窗口小部件,此属性包含一个空白区域。
访问功能:
QRegion childrenRegion() const
另请参见childrenRect(),geometry()和mask()。
contextMenuPolicy : Qt::ContextMenuPolicy
窗口小部件如何显示上下文菜单。此属性的默认值为Qt :: DefaultContextMenu,这意味着将调用contextMenuEvent()处理函数。
其他值是Qt :: NoContextMenu,Qt :: PreventContextMenu,Qt :: ActionsContextMenu和Qt :: CustomContextMenu。
使用Qt :: CustomContextMenu,将发出信号customContextMenuRequested()。
访问功能:
Qt::ContextMenuPolicy contextMenuPolicy() const
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)

另请参见contextMenuEvent(),customContextMenuRequested()和actions()。
cursor : QCursor
此属性保存此小部件的光标形状鼠标光标悬停在此小部件上时将采用此形状。有关一系列有用形状的信息,请参见预定义光标对象的列表。
编辑器小部件可能使用I型光标:

如果未设置游标,或者在调用unsetCursor()之后,将使用父级的游标。
默认情况下,此属性包含具有Qt :: ArrowCursor形状的光标。如果鼠标离开小部件,即使鼠标被抓住,某些基础窗口实现也会重置游标。
如果要为所有窗口小部件设置光标,即使在窗口外,也可以考虑QGuiApplication :: setOverrideCursor()。
访问功能:
QCursor cursor() const
void setCursor(const QCursor &)
void unsetCursor()
另请参见QGuiApplication :: setOverrideCursor()。
enabled : bool
此属性保存是否启用了窗口小部件。
通常,已启用的窗口小部件处理键盘和鼠标事件。禁用的小部件则不会。 QAbstractButton例外。某些小部件在禁用时会以不同的方式显示。例如,按钮可能会将其标签绘制为灰色。
如果您的小部件需要知道何时启用或禁用它,则可以将changeEvent()与QEvent :: EnabledChange类型一起使用。禁用小部件会隐式禁用其所有子项。
分别启用所有子控件,除非已明确禁用它们。当其父窗口小部件保持禁用状态时,不可能显式启用不是窗口的子窗口小部件。
默认情况下,此属性为true。
访问功能:
bool isEnabled() const
void setEnabled(bool)

另请参见isEnabledTo(),QKeyEvent,QMouseEvent和changeEvent()。
focus : const bool
此属性保存此小部件(或其焦点代理)是否具有键盘输入焦点。
默认情况下,此属性为false。注意:为窗口小部件获取此属性的值实际上等效于检查QApplication :: focusWidget()是否引用窗口小部件。
访问功能:
bool hasFocus() const

另请参见setFocus(),clearFocus(),setFocusPolicy()和QApplication :: focusWidget()。
focusPolicy : Qt::FocusPolicy
此属性保留窗口小部件接受键盘焦点的方式。
如果窗口小部件通过制表符接受键盘焦点,则策略为Qt :: TabFocus;如果窗口小部件通过单击接受焦点,则策略为Qt :: ClickFocus;如果窗口小部件同时接受焦点,则策略为Qt :: StrongFocus和Qt: :NoFocus(默认),如果它根本不接受焦点。
如果小部件处理键盘事件,则必须为其启用键盘焦点。通常这是通过小部件的构造函数完成的。例如,QLineEdit构造函数调用setFocusPolicy(Qt :: StrongFocus)。
如果小部件具有焦点代理,则焦点策略将传播给它。
访问功能:
Qt::FocusPolicy focusPolicy() const
void setFocusPolicy(Qt::FocusPolicy policy)
另请参见focusInEvent(),focusOutEvent(),keyPressEvent(),keyReleaseEvent()和启用。
font : QFont
此属性保存当前为小部件设置的字体。此属性描述小部件的请求字体。
呈现标准组件时,小部件的样式使用该字体,并且该字体可用来确保自定义小部件可以保持与本机平台外观的一致性。
通常,不同的平台或不同的样式会为应用程序定义不同的字体。当您为窗口小部件分配新字体时,该字体的属性将与窗口小部件的默认字体组合在一起以形成窗口小部件的最终字体。
您可以调用fontInfo()以获得小部件最终字体的副本。最终字体也用于初始化QPainter的字体。默认值取决于系统环境。 QApplication维护一种系统/主题字体,它是所有小部件的默认字体。
对于某些类型的小部件,可能还会有特殊的字体默认值。您还可以通过将自定义字体和窗口小部件的名称传递给QApplication :: setFont()来为窗口小部件定义默认字体。最后,将字体与Qt的字体数据库进行匹配以找到最佳匹配。
QWidget将显式字体属性从父级传播到子级。如果您更改字体的特定属性并将该字体分配给窗口小部件,则该属性将传播到窗口小部件的所有子级,从而覆盖该属性的所有系统默认值。
请注意,默认情况下,除非启用了Qt :: WA_WindowPropagation属性,否则字体不会传播到窗口(请参见isWindow())。
QWidget的字体传播类似于其调色板传播。当前样式用于呈现所有标准Qt小部件的内容,可以自由选择使用小部件字体,或者在某些情况下可以忽略(部分或完全)它。特别是,某些样式(例如GTK样式,Mac样式和Windows Vista样式)会对小部件字体进行特殊修改,以匹配平台的本机外观。因此,不能保证将属性分配给窗口小部件的字体会更改窗口小部件的外观。相反,您可以选择应用styleSheet。
注意:如果Qt样式表与setFont()在同一小部件上使用,则如果设置冲突,样式表将优先。
访问函数:
const QFont & font() const
void setFont(const QFont &)

另请参见fontInfo()和fontMetrics()。
frameGeometry : const QRect
小部件相对于其父级(包括任何窗口框架)的几何形状有关窗口几何问题的概述,请参见“窗口几何”文档。默认情况下,此属性包含一个取决于用户平台和屏幕几何形状的值。
访问函数:
QRect frameGeometry() const
另请参见geometry(),x(),y()和pos()。
frameSize : const QSize
此属性保存包含任何窗口框架的窗口小部件的大小。默认情况下,此属性包含一个值,该值取决于用户的平台和屏幕几何形状。
访问功能:
QSize frameSize() const
fullScreen : const bool
此属性保存是否以全屏模式显示窗口小部件。处于全屏模式的窗口小部件占据整个屏幕区域,并且不显示窗口装饰,例如标题栏。默认情况下,此属性为false。
访问函数:
bool isFullScreen() const
另请参见windowState(),minimized和maximized。
geometry : QRect
此属性保存窗口小部件相对于其父窗口的几何形状,但不包括窗口框架。
更改几何时,窗口小部件(如果可见)立即接收到移动事件(moveEvent())和/或调整大小事件(resizeEvent())。
如果窗口小部件当前不可见,则可以确保在显示窗口小部件之前先接收适当的事件。
如果大小分量超出由minimumSize()和maximumSize()定义的范围,则将对其进行调整。
警告:在resizeEvent()或moveEvent()中调用setGeometry()可能导致无限递归。有关Windows几何问题的概述,请参见“窗口几何”文档。
默认情况下,此属性包含一个取决于用户平台和屏幕几何形状的值。
访问函数:
const QRect & geometry() const
void setGeometry(int x, int y, int w, int h)

void setGeometry(const QRect &)
另请参见frameGeometry(),rect(),move(),resize(), moveEvent(),resizeEvent(),minimumSize()和maximumSize()。
height : const int
此属性保存窗口小部件的高度,不包括任何窗口框架。
有关窗口的几何问题的概述,请参见“窗口几何”文档。
注意:请勿使用此功能在多屏幕桌面上查找屏幕的高度。
请阅读此说明以获取详细信息。默认情况下,此属性包含一个取决于用户平台和屏幕几何形状的值。
访问函数:int height()const
另请参见See also geometry, width, and size.
inputMethodHints : Qt::InputMethodHints
特定于输入法的提示提示小部件具有的内容。这仅与输入窗口小部件有关。输入法使用它来检索有关输入法应如何操作的提示。
例如,如果设置了Qt :: ImhFormattedNumbersOnly标志,则输入法可能会更改其可视组件以反映只能输入数字。警告:某些小部件需要某些标志才能正常工作。要设置标志,请执行w-> setInputMethodHints(w-> inputMethodHints()| f)而不是w-> setInputMethodHints(f)。
注意:标志只是提示,因此特定的输入法实现可以随意忽略它们。如果要确保输入了某种类型的字符,则还应该在小部件上设置QValidator。默认值为Qt :: ImhNone。此属性在Qt 4.6中引入。
访问函数:
Qt::InputMethodHints inputMethodHints() const
void setInputMethodHints(Qt::InputMethodHints hints)

另请参见inputMethodQuery()。
isActiveWindow : const bool
此属性保存此窗口小部件的窗口是否为活动窗口。活动窗口是包含具有键盘焦点的窗口小部件的窗口(如果该窗口小部件不包含窗口小部件,或者该窗口小部件都不接受键盘焦点,则该窗口可能仍具有焦点)。
当弹出窗口可见时,此属性对于活动窗口和弹出窗口均为true。默认情况下,此属性为false。
访问函数:
bool isActiveWindow() const

另请参见activateWindow()和QApplication :: activeWindow()。
layoutDirection : Qt::LayoutDirection
此属性保存此窗口小部件的布局方向。
默认情况下,此属性设置为Qt :: LeftToRight。在窗口小部件上设置布局方向时,它将传播到窗口小部件的子级,但不会传播到窗口的子级,也不会传播到已为其显式调用setLayoutDirection()的子级。另外,在为父级调用setLayoutDirection()之后添加的子级小部件不会继承父级的布局方向。
从Qt 4.7开始,此方法不再影响文本布局方向。
访问函数:
Qt::LayoutDirection layoutDirection() const
void setLayoutDirection(Qt::LayoutDirection direction)
void unsetLayoutDirection()

另请参见QApplication :: layoutDirection。
locale : QLocale
此属性保存窗口小部件的语言环境,只要未设置特殊的语言环境,就可以是父级的语言环境,也可以是默认语言环境(如果此窗口小部件是顶级窗口小部件)。
如果窗口小部件显示日期或数字,则应使用窗口小部件的语言环境设置日期或数字的格式。
此属性在Qt 4.3中引入。
访问函数:
QLocale locale() const
void setLocale(const QLocale &locale)
void unsetLocale()
另请参见QLocale和QLocale :: setDefault()。
maximized : const bool
此属性保存此窗口小部件是否最大化。此属性仅与Windows有关。
注意:由于某些窗口系统的限制,它并不总是报告预期的结果(例如,如果X11上的用户通过窗口管理器最大化窗口,则Qt无法将其与任何其他调整大小区分开)。随着窗口管理器协议的发展,这种情况有望得到改善。
默认情况下,此属性为false。
访问函数:
bool isMaximized() const

另请参见windowState(),showMaximized(),visible,show(),hide(),showNormal()和minimized。
maximumHeight : int
此属性保存窗口小部件的最大高度(以像素为单位)。
此属性对应于maximumSize属性保持的高度。默认情况下,此属性包含一个值16777215。
注意:QWIDGETSIZE_MAX宏的定义限制了小部件的最大大小。
访问功能:
int maximumHeight() const
void setMaximumHeight(int maxh)
另请参见 maximumSize 和maximumWidth.
maximumSize : QSize
此属性保存窗口小部件的最大大小(以像素为单位)。不能将窗口小部件的大小调整为大于窗口小部件的最大大小。
默认情况下,此属性包含的大小的宽度和高度的值均为16777215。
注意:QWIDGETSIZE_MAX宏的定义限制了小部件的最大大小。
访问功能:
QSize maximumSize() const
void setMaximumSize(const QSize &)
void setMaximumSize(int maxw, int maxh)

另请参见 maximumWidth, maximumHeight, minimumSize, 和sizeIncrement.
maximumWidth : int
此属性保存窗口小部件的最大宽度(以像素为单位)。
此属性对应于maximumSize属性所保持的宽度。默认情况下,此属性包含一个值16777215。
注意:QWIDGETSIZE_MAX宏的定义限制了小部件的最大大小。
访问功能:
int maximumWidth() const
void setMaximumWidth(int maxw)
另请参见 maximumSize 和maximumHeight.
minimized : const bool
此属性保存是否最小化(图标化)此窗口小部件。此属性仅与Windows有关。默认情况下,此属性为false。
访问功能:
bool isMinimized() const
另请参见 showMinimized(), visible, show(), hide(), showNormal(), 和maximized.
minimumHeight : int
此属性保存窗口小部件的最小高度(以像素为单位)。
此属性对应于minimumSize属性保持的高度。
默认情况下,此属性的值为0。
访问函数:
int minimumHeight() const
void setMinimumHeight(int minh)
另请参见 minimumSize 和minimumWidth.
minimumSize : QSize
此属性保存窗口小部件的最小大小。无法将窗口小部件的大小调整为小于窗口小部件的最小大小。
如果当前大小较小,则将小部件的大小强制为最小大小。此函数设置的最小大小将覆盖QLayout定义的最小大小。为了取消设置最小大小,请使用QSize(0,0)的值。
默认情况下,此属性包含一个宽度和高度为零的大小。
访问功能:
QSize minimumSize() const
void setMinimumSize(const QSize &)
void setMinimumSize(int minw, int minh)
另请参见minimumWidth, minimumHeight, maximumSize, 和 sizeIncrement.
minimumSizeHint : const QSize
此属性保存建议的窗口小部件最小尺寸。如果此属性的值是无效尺寸,则不建议使用最小尺寸。
如果没有此小部件的布局,minimumSizeHint()的默认实现将返回无效的大小,否则,将返回布局的最小大小。
大多数内置窗口小部件会重新实现minimumSizeHint()。
除非设置了minimumSize()或将大小策略设置为QSizePolicy :: Ignore,否则QLayout绝不会将窗口小部件的大小调整为小于最小大小提示。
如果设置了minimumSize(),则最小尺寸提示将被忽略。
访问功能:
virtual QSize minimumSizeHint() const
另请参见 QSize::isValid(), resize(), setMinimumSize(), 和 sizePolicy().
Public Slots
bool QWidget::close()
关闭此小部件。如果窗口小部件已关闭,则返回true;否则,返回false。
首先,它向小部件发送QCloseEvent。
如果小部件接受关闭事件,则将其隐藏。如果它忽略该事件,则什么也不会发生。 QWidget :: closeEvent()的默认实现接受close事件。
如果窗口小部件具有Qt :: WA_DeleteOnClose标志,则该窗口小部件也将被删除。无论小部件是否可见,关闭事件都会传递给小部件。当最后一个设置了Qt :: WA_QuitOnClose属性的可见主窗口(即没有父窗口)关闭时,将发出QApplication :: lastWindowClosed()信号。
默认情况下,将为所有窗口小部件设置此属性,瞬态窗口(例如初始屏幕,工具窗口和弹出菜单)除外。
void QWidget::hide()
隐藏小部件。此函数等效于setVisible(false)。
注意:如果使用的是QDialog或其子类,并且在此函数之后调用show()函数,则对话框将以其原始位置显示。
另请参见hideEvent(),isHidden(),show(),setVisible(),isVisible()和close()。
void QWidget::lower()
将小部件降低到父小部件堆栈的底部。在此调用之后,小部件将在视觉上位于任何重叠的同级小部件之后(并因此而被其遮盖)。
另请参见raise()和stackUnder()。
void QWidget::raise()
将此小部件提升到父小部件堆栈的顶部。
在此调用之后,该小部件将在视觉上位于任何重叠的同级小部件之前。
注意:使用activateWindow()时,可以调用此函数以确保窗口堆叠在顶部。
另请参见lower()和stackUnder()。
void QWidget::repaint()
除非立即禁用更新或隐藏小部件,否则立即通过调用paintEvent()直接重绘小部件。我们建议仅在需要立即重绘(例如在动画期间)时才使用repaint()。
在几乎所有情况下,update()都更好,因为它允许Qt优化速度并最小化闪烁。
警告:如果您在本身可以从paintEvent()调用的函数中调用repaint(),则可能会得到无限递归。 update()函数永远不会导致递归。
另请参见update(),paintEvent()和setUpdatesEnabled()。
void QWidget::setDisabled(bool disable)
如果disable为true,则禁用小部件输入事件;否则启用输入事件。有关更多信息,请参见已启用的文档。
另请参见isEnabledTo(),QKeyEvent,QMouseEvent和changeEvent()。
enabled : bool
此属性保存是否启用了窗口小部件。
通常,已启用的窗口小部件处理键盘和鼠标事件。禁用的小部件则不会。 QAbstractButton例外。某些小部件在禁用时会以不同的方式显示。
例如,按钮可能会将其标签绘制为灰色。如果您的小部件需要知道何时启用或禁用它,则可以将changeEvent()与QEvent :: EnabledChange类型一起使用。禁用小部件会隐式禁用其所有子项。分别启用所有子控件,除非已明确禁用它们。
当其父窗口小部件保持禁用状态时,不可能显式启用不是窗口的子窗口小部件。默认情况下,此属性为true。
访问函数:
bool isEnabled() const
void setEnabled(bool)
另请参见isEnabledTo(),QKeyEvent,QMouseEvent和changeEvent()。
void QWidget::setFocus()
这是一个重载函数。
如果此窗口小部件或其父项之一是活动窗口,则将键盘输入焦点赋予该窗口小部件(或其焦点代理)。
void QWidget::setHidden(bool hidden)
便利功能,等效于setVisible(!hidden)。
另请参见isHidden()。
styleSheet : QString
此属性包含窗口小部件的样式表。
样式表包含对窗口小部件样式的自定义的文本描述,如Qt样式表文档中所述。
从Qt 4.5开始,Qt样式表完全支持macOS。
警告:自定义QStyle子类当前不支持Qt样式表。我们计划在将来的版本中解决此问题。
此属性在Qt 4.2中引入。
访问功能:
QString styleSheet() const
void setStyleSheet(const QString &styleSheet)
另请参见 setStyle(), QApplication::styleSheet, 和Qt Style Sheets.
visible : bool
此属性保存窗口小部件是否可见,如果直到窗口的所有父窗口小部件都可见,则调用setVisible(true)或show()会将窗口小部件设置为可见状态。
如果祖先不可见,则在显示其所有祖先之前,该窗口小部件将不可见。
如果其大小或位置已更改,则Qt保证窗口小部件会在显示之前立即移动并调整大小。
如果尚未调整窗口小部件的大小,Qt将使用adjustSize()将窗口小部件的大小调整为有用的默认值。
调用setVisible(false)或hide()会显式隐藏小部件。除非您显示它,否则即使它的所有祖先都可见,显式隐藏的窗口小部件也将永远不可见。当控件的可见性状态更改时,它会接收显示和隐藏事件。
在隐藏事件和显示事件之间,无需浪费CPU周期来准备或向用户显示信息。例如,视频应用程序可能只是停止生成新帧。屏幕上其他窗口遮挡的窗口小部件被视为可见。图标化的窗口和存在于另一个虚拟桌面(在支持此概念的平台上)上的窗口也是如此。
当窗口系统更改其映射状态(例如,窗口小部件)时,窗口小部件会自发地显示和隐藏事件。用户最小化窗口时发生自发的隐藏事件,再次恢复窗口时发生自发的显示事件。您几乎不需要重新实现setVisible()函数。
如果需要在显示小部件之前更改某些设置,请改用showEvent()。
如果您需要进行一些延迟的初始化,请使用传递给event()函数的波兰事件。
访问功能:
bool isVisible() const
virtual void setVisible(bool visible)
另请参见 show(), hide(), isHidden(), isVisibleTo(), isMinimized(), showEvent(), 和hideEvent().
windowModified : bool
此属性保存窗口中显示的文档是否有未保存的更改。修改后的窗口是内容已更改但尚未保存到磁盘的窗口。
该标志将因平台而异。在macOS上,关闭按钮的外观会有所修改;在其他平台上,窗口标题将带有“ ”(星号)。
窗口标题必须包含“ [
]”占位符,该占位符指示应在何处显示“ ”。通常,它应该出现在文件名之后(例如,“ document1.txt []-文本编辑器”)。
如果未修改窗口,则仅删除占位符。
请注意,如果将小部件设置为已修改,则其所有祖先也将被设置为已修改。
但是,如果在窗口小部件上调用setWindowModified(false),它将不会传播到其父级,因为可能已修改了该父级的其他子级。
访问函数:
bool isWindowModified() const
void setWindowModified(bool)
另请参见 windowTitle, Application Example, SDI Example, 和MDI Example.
windowTitle : QString
此属性保存窗口标题(标题)。
此属性仅对顶级窗口小部件(如窗口和对话框)有意义。
如果未设置标题,则标题基于windowFilePath。
如果都没有设置,则标题为空字符串。
如果使用windowModified机制,则窗口标题必须包含“ []”占位符,该占位符指示应在何处显示“ *”。通常,它应该出现在文件名之后(例如,“ document1.txt []-文本编辑器”)。
如果windowModified属性为false(默认值),则仅删除占位符。在某些桌面平台(包括Windows和Unix)上,应用程序名称(来自QGuiApplication :: applicationDisplayName)添加在窗口标题的末尾(如果已设置)。
这是由QPA插件完成的,因此会显示给用户,但不属于windowTitle字符串。
访问功能:
QString windowTitle() const
void setWindowTitle(const QString &)
通知者信号:
void windowTitleChanged(const QString &title)
另请参见 windowIcon, windowModified, 和windowFilePath.
void QWidget::show()
显示窗口小部件及其子窗口小部件。这等效于调用showFullScreen(),showMaximized()或setVisible(true),具体取决于平台对窗口标志的默认行为。
另请参见raise(),showEvent(),hide(),setVisible(),showMinimized(),showMaximized(),showNormal(),isVisible()和windowFlags()。
void QWidget::showFullScreen()
以全屏模式显示小部件。
调用此功能仅影响Windows。要从全屏模式返回,请调用showNormal()。
全屏模式在Windows下可以正常工作,但在X下可以解决某些问题。这些问题是由于ICCCM协议的限制所致,该协议指定了X11客户端与窗口管理器之间的通信。 ICCCM根本不了解非装饰全屏窗口的概念。因此,我们能做的最好的事情就是请求一个无边界的窗口,并放置它并调整其大小以填满整个屏幕。
根据窗口管理器的不同,此方法可能有效也可能无效。使用MOTIF提示请求无边界窗口,几乎所有现代窗口管理器都至少部分支持该提示。另一种选择是完全绕开窗口管理器,并使用Qt :: X11BypassWindowManagerHint标志创建一个窗口。
但是,这还有其他严重的问题,例如键盘焦点完全损坏以及对桌面更改或用户抬起其他窗口时产生非常奇怪的影响。遵循最新的ICCCM后规范的X11窗口管理器正确支持全屏模式。
另请参见showNormal(),showMaximized(),show(),hide()和isVisible()。
void QWidget::showMaximized()
显示最大化的小部件。调用此功能仅影响Windows。在X11上,某些窗口管理器可能无法正常使用此功能。
有关说明请参见“窗口几何”文档。
另请参见setWindowState(),showNormal(),showMinimized(),show(),hide()和isVisible()。
void QWidget::showMinimized()
将最小化的小部件显示为图标。调用此功能仅影响Windows。
另请参见showNormal(),showMaximized(),show(),hide(),isVisible()和isMinimized()。
void QWidget::showNormal()
在最大化或最小化窗口小部件后将其还原。
调用此功能仅影响Windows。
另请参见setWindowState(),showMinimized(),showMaximized(),show(),hide()和isVisible()。
void QWidget::update()
除非禁用更新或隐藏小部件,否则更新小部件。
此功能不会导致立即重画;相反,当Qt返回到主事件循环时,它将安排一个绘画事件进行处理。与对repaint()的调用相比,这允许Qt优化以提高速度和减少闪烁。多次调用update()通常只会导致一次paintEvent()调用。
Qt通常在paintEvent()调用之前擦除小部件的区域。
如果设置了Qt :: WA_OpaquePaintEvent小部件属性,则该小部件负责用不透明的颜色绘制其所有像素。
另请参见repaint(),paintEvent(),setUpdatesEnabled()和Analog Clock Example。
Static Public Members
QWidget *QWidget::createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
创建一个QWidget,可以将窗口嵌入到基于QWidget的应用程序中。窗口容器被创建为父级的子级,并带有窗口标志标志。一旦将窗口嵌入到容器中,容器将控制窗口的几何形状和可见性。
不建议在嵌入式窗口上显式调用QWindow :: setGeometry(),QWindow :: show()或QWindow :: hide()。容器接管了窗口的所有权。可以通过调用QWindow :: setParent()从窗口容器中删除该窗口。窗口容器作为本机子窗口附加到其子级的顶层窗口。
当窗口容器用作QAbstractScrollArea或QMdiArea的子级时,它将为其父链中的每个小部件创建一个本机窗口,以便在此用例中进行适当的堆叠和剪切。为窗口容器创建本机窗口还可以进行正确的堆栈和剪切。必须在显示窗口容器之前完成此操作。具有许多本机子窗口的应用程序可能会遇到性能问题。
窗口容器有许多已知的限制:
堆叠顺序;嵌入式窗口将作为不透明框堆叠在小部件层次结构的顶部。多个重叠的窗口容器实例的堆叠顺序是不确定的。
渲染集成;窗口容器不能与QGraphicsProxyWidget,QWidget :: render()或类似功能互操作。
焦点处理;可以让窗口容器实例具有任何焦点策略,并且它将通过调用QWindow :: requestActivate()将焦点委托给窗口。
但是,从QWindow实例返回正常的焦点链将取决于QWindow实例实现本身。
例如,当进入具有标签页焦点的基于Qt Quick的窗口时,很有可能进一步的标签页按下只会在QML应用程序内部循环。同样,QWindow :: requestActivate()是否真正赋予窗口焦点取决于平台。
在基于QWidget的应用程序中使用许多窗口容器实例可能会严重损害应用程序的整体性能。
QWidget *QWidget::find(WId id)
返回带有窗口标识符/句柄ID的小部件的指针。
窗口标识符的类型取决于基础窗口系统,有关实际定义。
请参见qwindowdefs.h。如果没有带有此标识符的窗口小部件,则返回nullptr。
QWidget *QWidget::keyboardGrabber()
返回当前正在获取键盘输入的小部件。
如果此应用程序中当前没有小部件在抓住键盘,则返回nullptr。
另请参见grabMouse()和mouseGrabber()。
QWidget *QWidget::mouseGrabber()
返回当前正在捕获鼠标输入的小部件。
如果此应用程序中当前没有任何小部件在抓住鼠标,则返回nullptr。
另请参见grabMouse()和keyboardGrabber()。
void QWidget::setTabOrder(QWidget *first, QWidget *second)
在焦点顺序中将第二个小部件放在第一个小部件之后。它有效地从其焦点链中删除了第二个小部件,并将其插入第一个小部件之后。
请注意,由于第二个窗口小部件的制表符顺序已更改,因此您应按以下顺序排序链:
不是下面这样:

如果第一个或第二个具有焦点代理,则setTabOrder()可以正确替代代理。
注意:从Qt 5.10开始:具有子级作为焦点代理的窗口小部件被理解为复合窗口小部件。在一个或两个复合小部件之间设置标签顺序时,将保留每个内部小部件中的本地标签顺序。这意味着,如果两个窗口小部件都是复合窗口小部件,则产生的选项卡顺序将是从第一个内部的最后一个子项到第二个内部的第一个子项。
另请参见小部件中的setFocusPolicy(),setFocusProxy()和“键盘焦点”。
Protected Functions
void QWidget::actionEvent(QActionEvent *event)
每当更改窗口小部件的动作时,都会使用给定事件调用此事件处理程序。
另请参见addAction(),insertAction(),removeAction(),actions()和QActionEvent。
void QWidget::changeEvent(QEvent *event)
可以重新实现此事件处理程序以处理状态更改。可以通过提供的事件来检索在此事件中更改的状态。
更改事件包括:QEvent :: ToolBarChange,QEvent :: ActivationChange,QEvent :: EnabledChange,QEvent :: FontChange,QEvent :: StyleChange,QEvent :: PaletteChange,QEvent :: WindowTitleChange,QEvent :: IconTextChange,QEvent :: ModifiedChange,QEvent :: MouseTrackingChange,QEvent :: ParentChange,QEvent :: WindowStateChange,QEvent :: LanguageChange,QEvent :: LocaleChange,QEvent :: LayoutDirectionChange,QEvent :: ReadOnlyChange。
void QWidget::closeEvent(QCloseEvent *event)
当Qt从窗口系统收到对顶级窗口小部件的窗口关闭请求时,将使用给定事件调用此事件处理程序。
默认情况下,事件被接受并且小部件关闭。您可以重新实现此功能,以更改小部件响应窗口关闭请求的方式。例如,可以通过在所有事件上调用ignore()来防止窗口关闭。主窗口应用程序通常使用此功能的重新实现来检查用户的工作是否已保存并在关闭前请求许可。
例如,应用程序示例使用帮助器函数来确定是否关闭窗口:

详情参见 event(), hide(), close(), QCloseEvent, 和Application Example.
void QWidget::contextMenuEvent(QContextMenuEvent *event)
对于事件事件,可以在子类中重新实现此事件处理程序,以接收小部件上下文菜单事件。
当小部件的contextMenuPolicy为Qt :: DefaultContextMenu时,将调用处理程序。默认实现忽略上下文事件。有关更多详细信息,
请参见QContextMenuEvent文档。
另请参见event(),QContextMenuEvent和customContextMenuRequested()。
void QWidget::create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)
创建一个新的窗口小部件窗口。
Qt 5中会忽略参数window,initializeWindow和destroyOldWindow。
请使用QWindow :: fromWinId()创建一个包装外部窗口的QWindow,并将其传递给QWidget :: createWindowContainer()。
另请参见createWindowContainer()和QWindow :: fromWinId()。
void QWidget::destroy(bool destroyWindow = true, bool destroySubWindows = true)
释放窗口系统资源。
如果destroyWindow为true,则销毁窗口小部件窗口。 destroy()递归地为所有子小部件调用自身,将destroySubWindows传递给destroyWindow参数。要更好地控制子小部件的销毁,请先选择性地销毁子小部件。
通常从QWidget析构函数调用此函数。
void QWidget::dragEnterEvent(QDragEnterEvent *event)
当拖动正在进行并且鼠标进入该小部件时,将调用此事件处理程序。
该事件在event参数中传递。如果事件被忽略,则小部件将不会收到任何拖动事件。
有关如何在应用程序中进行拖放的概述,请参见拖放文档。
另请参见QDrag和QDragEnterEvent。
void QWidget::dragLeaveEvent(QDragLeaveEvent *event)
当拖动正在进行并且鼠标离开该小部件时,将调用此事件处理程序。
该事件在event参数中传递。有关如何在应用程序中进行拖放的概述,请参见拖放文档。
另请参见QDrag和QDragLeaveEvent。
void QWidget::dragMoveEvent(QDragMoveEvent *event)
如果拖动正在进行中,并且发生以下任何一种情况,则将调用此事件处理程序:光标进入此窗口小部件,光标在该窗口小部件内移动,或在此窗口小部件获得焦点时按下键盘上的修改键。
该事件在event参数中传递。有关如何在应用程序中进行拖放的概述,请参见拖放文档。
另请参见QDrag和QDragMoveEvent。
void QWidget::dropEvent(QDropEvent *event)
当拖动拖放到此小部件上时,将调用此事件处理程序。
该事件在event参数中传递。有关如何在应用程序中进行拖放的概述,请参见拖放文档。
另请参见QDrag和QDropEvent。
void QWidget::enterEvent(QEvent *event)
可以在子类中重新实现此事件处理程序,以接收在event参数中传递的小部件输入事件。
当鼠标光标进入窗口小部件时,事件将发送到窗口小部件。
另请参见leaveEvent(),mouseMoveEvent()和event()。
void QWidget::focusInEvent(QFocusEvent *event)
可以在子类中重新实现此事件处理程序,以接收小部件的键盘焦点事件(接收到焦点)。
该事件在event参数中传递。窗口小部件通常必须将FocusPolicy()设置为Qt :: NoFocus以外的其他值,以接收焦点事件。
(请注意,应用程序程序员可以在任何窗口小部件上调用setFocus(),即使那些通常不接受焦点的窗口小部件也是如此。)默认实现会更新窗口小部件(未指定focusPolicy()的窗口除外)。
另请参见focusOutEvent(),setFocusPolicy(),keyPressEvent(),keyReleaseEvent(),event()和QFocusEvent。
bool QWidget::focusNextChild()
查找一个新的小部件,以使键盘焦点适合Tab,并在找到新的小部件时返回true;否则,返回false。
另请参见focusPreviousChild()。
bool QWidget::focusNextPrevChild(bool next)
根据Tab和Shift + Tab键,找到一个使键盘焦点对准的新小部件,如果可以找到新的小部件,则返回true;否则,返回false。
如果next为true,则此函数向前搜索;如果next为false,则向后搜索。有时,您将需要重新实现此功能。
例如,Web浏览器可能会重新实现它以使其“当前活动链接”向前或向后移动,并仅在到达“页面”上的最后一个或第一个链接时才调用focusNextPrevChild()。
子窗口小部件在其父窗口小部件上调用focusNextPrevChild(),但是只有包含子窗口小部件的窗口才决定将焦点重定向到何处。
通过为对象重新实现此功能,可以控制所有子小部件的焦点遍历。
另请参见focusNextChild()和focusPreviousChild()。
void QWidget::focusOutEvent(QFocusEvent *event)
可以在子类中重新实现此事件处理程序,以接收小部件的键盘焦点事件(焦点丢失)。
事件在event参数中传递。
小部件通常必须将FocusPolicy()设置为Qt :: NoFocus以外的其他值,才能接收焦点事件。
(请注意,应用程序程序员可以在任何窗口小部件上调用setFocus(),即使那些通常不接受焦点的窗口小部件也是如此。)默认实现会更新窗口小部件(未指定focusPolicy()的窗口除外)。
另请参见focusInEvent(),setFocusPolicy(),keyPressEvent(),keyReleaseEvent(),event()和QFocusEvent。
bool QWidget::focusPreviousChild()
根据Shift + Tab键,找到一个使键盘焦点对准的新小部件,如果可以找到新的小部件,则返回true;否则,返回false。
另请参见focusNextChild()。
void QWidget::hideEvent(QHideEvent *event)
可以在子类中重新实现此事件处理程序,以接收小部件隐藏事件。
该事件在event参数中传递。隐藏事件在隐藏后会立即发送到小部件。
注意:当窗口系统更改其映射状态时,例如窗口小部件,窗口小部件会收到自发的显示和隐藏事件。
用户最小化窗口时发生自发的隐藏事件,再次恢复窗口时发生自发的显示事件。收到自发的hide事件后,从isVisible()的角度来看,仍将小部件视为可见。
另请参见visible,event()和QHideEvent。
void QWidget::inputMethodEvent(QInputMethodEvent *event)
可以在子类中重新实现用于event事件的处理程序,以接收输入法合成事件。输入方法的状态更改时,将调用此处理程序。
请注意,在创建自定义文本编辑窗口小部件时,必须显式设置Qt :: WA_InputMethodEnabled窗口属性(使用setAttribute()函数),以便接收输入法事件。
默认实现调用event-> ignore(),它拒绝Input Method事件。
有关更多详细信息,请参见QInputMethodEvent文档。
另请参见event()和QInputMethodEvent。
void QWidget::keyPressEvent(QKeyEvent *event)
可以在子类中重新实现event时间的处理程序,以接收小部件的按键事件。小部件必须调用setFocusPolicy()才能最初接受焦点并具有焦点,以便接收按键事件。
如果重新实现此处理程序,那么如果不对键进行操作,则调用基类实现非常重要。
如果用户按下QKeySequence :: Cancel的键序列(通常是Escape键),则默认实现将关闭弹出窗口小部件。否则,事件将被忽略,以便小部件的父级可以解释它。
请注意,QKeyEvent以isAccepted()== true开头,因此您无需调用QKeyEvent :: accept()-如果对键进行操作,则无需调用基类实现。
另请参见keyReleaseEvent(),setFocusPolicy(),focusInEvent(),focusOutEvent(),event(),QKeyEvent和Tetrix示例。
void QWidget::keyReleaseEvent(QKeyEvent *event)
可以在子类中重新实现该事件处理程序(用于事件事件),以接收小部件的关键释放事件。小部件必须首先接受焦点并具有焦点才能接收按键释放事件。
如果重新实现此处理程序,那么如果不对键进行操作,则调用基类实现非常重要。默认实现会忽略该事件,以便小部件的父级可以解释该事件。
请注意,QKeyEvent以isAccepted()== true开头,因此您无需调用QKeyEvent :: accept()-如果对键进行操作,则无需调用基类实现。
另请参见keyPressEvent(),QEvent :: ignore(),setFocusPolicy(),focusInEvent(),focusOutEvent(),event()和QKeyEvent。
void QWidget::leaveEvent(QEvent *event)
可以在子类中重新实现此事件处理程序,以接收在event参数中传递的小部件离开事件。当鼠标光标离开小部件时,将离开事件发送到该小部件。
另请参见enterEvent(),mouseMoveEvent()和event()。
void QWidget::mouseDoubleClickEvent(QMouseEvent *event)
可以在子类中重新实现该事件处理程序(用于事件事件),以接收小部件的鼠标双击事件。默认实现调用mousePressEvent()。
注意:除双击事件外,小部件还将接收鼠标按下和鼠标释放事件。并且,如果另一个与该小部件重叠的小部件因响应按下或释放事件而消失,则该小部件将仅收到双击事件。
开发人员有责任确保应用程序正确解释这些事件。
另请参见mousePressEvent(),mouseReleaseEvent(),mouseMoveEvent(),event()和QMouseEvent。
void QWidget::mouseMoveEvent(QMouseEvent *event)
可以在子类中重新实现此事件处理程序(用于事件事件),以接收小部件的鼠标移动事件。
如果关闭了鼠标跟踪,则仅当在移动鼠标时按下鼠标按钮时,才会发生鼠标移动事件。如果打开了鼠标跟踪,即使没有按下鼠标按钮,也会发生鼠标移动事件。 QMouseEvent :: pos()报告鼠标光标相对于此小部件的位置。对于按下和释放事件,其位置通常与上次鼠标移动事件的位置相同,但是如果用户握手则可能会有所不同。这是基础窗口系统的功能,而不是Qt。如果要在鼠标移动时立即显示工具提示(例如,使用QMouseEvent :: pos()获取鼠标坐标并将其显示为工具提示),则必须首先如上所述启用鼠标跟踪。然后,为确保立即更新工具提示,必须在实现mouseMoveEvent()时调用QToolTip :: showText()而不是setToolTip()。
另请参见setMouseTracking(),mousePressEvent(),mouseReleaseEvent(),mouseDoubleClickEvent(),event(),QMouseEvent和Scribble示例。
void QWidget::mousePressEvent(QMouseEvent *event)
可以在子类中重新实现event时间的处理程序,以接收小部件的鼠标按下事件。
如果您在mousePressEvent()中创建新的小部件,则mouseReleaseEvent()可能不会到达您期望的位置,这取决于基础窗口系统(或X11窗口管理器),小部件的位置,甚至更多。
当您在窗口外部单击时,默认实现会关闭弹出窗口小部件。对于其他窗口小部件类型,它不执行任何操作。
另请参见mouseReleaseEvent(),mouseDoubleClickEvent(),mouseMoveEvent(),event(),QMouseEvent和Scribble示例。
void QWidget::mouseReleaseEvent(QMouseEvent *event)
可以在子类中重新实现此事件处理程序(用于事件事件),以接收小部件的鼠标释放事件。
另请参见mousePressEvent(),mouseDoubleClickEvent(),mouseMoveEvent(),event(),QMouseEvent和Scribble示例。
void QWidget::move(int x, int y)
这是一个重载函数。这对应于move(QPoint(x,y))。注意:属性pos的setter函数。
bool QWidget::nativeEvent(const QByteArray &eventType, void *message, long *result)
可以在子类中重新实现此特殊事件处理程序,以接收由eventType标识的本机平台事件,这些事件在message参数中传递。
在重新实现此功能时,如果要停止由Qt处理的事件,请返回true并设置结果。结果参数仅在Windows上具有含义。如果返回false,则将本机事件传递回Qt,Qt将事件转换为Qt事件并将其发送到小部件。
注意:仅当窗口小部件具有本机窗口句柄时,事件才会传递到此事件处理程序。
注意:此函数取代Qt 4的事件过滤器函数x11Event(),winEvent()和macEvent()。
Platform Event Type Identifier Message Type Result Type
Windows “windows_generic_MSG” MSG * LRESULT
macOS “NSEvent” NSEvent *
XCB “xcb_generic_event_t” xcb_generic_event_t *
详情参见 QAbstractNativeEventFilter.
void QWidget::paintEvent(QPaintEvent *event)
可以在子类中重新实现此事件处理程序,以接收事件中传递的绘画事件。
绘制事件是重新绘制小部件的全部或一部分的请求。可能由于以下原因之一而发生这种情况:调用repaint()或update(),该窗口小部件被遮盖且现在已被发现,或许多其他原因。
许多窗口小部件可以在需要时仅重绘整个表面,但是一些慢速窗口小部件需要通过仅绘制请求的区域来优化:QPaintEvent :: region()。此速度优化不会更改结果,因为在事件处理期间将绘画裁剪到该区域。
例如,QListView和QTableView就是这样做的。
Qt还尝试通过将多个绘画事件合并为一个来加快绘画速度。当多次调用update()或窗口系统发送多个绘制事件时,Qt会将这些事件合并为一个具有较大区域的事件(请参见QRegion :: united())。 repaint()函数不允许这种优化,因此我们建议尽可能使用update()。
发生绘画事件时,通常会擦除更新区域,因此您正在小部件的背景上绘画。可以使用setBackgroundRole()和setPalette()设置背景。
从Qt 4.0开始,QWidget自动对其绘画进行双缓冲,因此无需在paintEvent()中编写双缓冲代码来避免闪烁。
注意:通常,应避免在paintEvent()内部调用update()或repaint()。例如,在paintEvent()内的子级上调用update()或repaint()会导致未定义的行为。孩子可能会也可能不会参加绘画活动。
警告:如果您使用的是没有Qt后备存储的自定义绘画引擎,则必须设置Qt :: WA_PaintOnScreen。否则,QWidget :: paintEngine()将永远不会被调用;将使用后备存储。
另请参见event(),repaint(),update(),QPainter,QPixmap,QPaintEvent和Analog Clock Example。
void QWidget::resizeEvent(QResizeEvent *event)
可以在子类中重新实现此事件处理程序,以接收在event参数中传递的窗口小部件调整大小事件。
调用resizeEvent()时,小部件已经具有新的几何形状。可以通过QResizeEvent :: oldSize()访问旧大小。
在处理调整大小事件后,该窗口小部件将被擦除并立即收到一个绘制事件。在此处理程序内无需(或不应)进行绘制。
另请参见moveEvent(),event(),resize(),QResizeEvent,paintEvent()和Scribble示例。
void QWidget::showEvent(QShowEvent *event)
可以在子类中重新实现此事件处理程序,以接收在event参数中传递的窗口小部件显示事件。
非自发的显示事件会在显示之前立即发送到窗口小部件。窗口的自发显示事件随后被传送。
注意:当窗口系统更改其映射状态时,例如窗口小部件,窗口小部件会收到自发的显示和隐藏事件。用户最小化窗口时发生自发的隐藏事件,再次恢复窗口时发生自发的显示事件。
收到自发的hide事件后,从isVisible()的角度来看,仍将小部件视为可见。
另请参见visible,event()和QShowEvent。
void QWidget::tabletEvent(QTabletEvent *event)
可以在子类中重新实现该事件处理程序(用于事件事件),以接收小部件的平板电脑事件。
如果重新实现此处理程序,则不处理该事件就必须忽略()事件,以便小部件的父级可以解释该事件,这一点非常重要。
默认实现忽略该事件。如果关闭了数位板跟踪功能,则仅当手写笔与数位板接触或在移动手写笔时按下至少一个手写笔按钮时,才会发生数位板移动事件。
如果打开了数位板跟踪功能,则即使手写笔在数位板附近徘徊而没有按下按钮,也将发生数位板移动事件。
另请参见QEvent :: ignore(),QEvent :: accept(),event(),setTabletTracking()和QTabletEvent。
void QWidget::wheelEvent(QWheelEvent *event)
可以在子类中重新实现此事件处理程序(用于事件事件),以接收小部件的转轮事件。
如果重新实现此处理程序,则不处理该事件就必须忽略()事件,以便小部件的父级可以解释该事件,这一点非常重要。默认实现忽略该事件。
另请参见QEvent :: ignore(),QEvent :: accept(),event()和QWheelEvent。
Macros
QWIDGETSIZE_MAX

Public Functions
QWidget::QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
构造一个小部件,它是父级的子级,并将小部件标志设置为f。
如果parent为nullptr,则新窗口小部件将成为一个窗口。如果parent是另一个小部件,则此小部件将成为parent内部的子窗口。
删除其父项时,将删除新的窗口小部件。小部件标志参数f通常为0,但可以将其设置为自定义窗口的框架(即parent必须为nullptr)。要自定义框架,请使用由任何窗口标志的按位或组成的值。
如果将子窗口小部件添加到已经可见的窗口小部件,则必须显式显示子窗口以使其可见。
请注意,Qt的X11版本可能无法在所有系统上提供样式标志的所有组合。这是因为在X11上,Qt只能询问窗口管理器,并且窗口管理器可以覆盖应用程序的设置。在Windows上,Qt可以设置所需的任何标志。
另请参见windowFlags。
QWidget::~QWidget()
销毁小部件。所有此小部件的子级都将首先删除。
如果此窗口小部件是主窗口小部件,则应用程序退出。
acceptDrops : bool
此属性保存是否为此窗口小部件启用了放置事件。将此属性设置为true会向系统宣布此窗口小部件可能能够接受放置事件。
如果窗口小部件是桌面(windowType()== Qt :: Desktop),则在另一个应用程序正在使用桌面的情况下,此操作可能会失败。您可以调用acceptDrops()来测试是否发生这种情况。
警告:请勿在拖放事件处理程序中修改此属性。默认情况下,此属性为false。
访问函数:
bool acceptDrops() const
void setAcceptDrops(bool on)
另请参见Drag 和 Drop.。
accessibleDescription : QString
此属性保存辅助技术所看到的小部件的描述。小部件的可访问描述应传达小部件的功能。
尽管accessibleName应该是简短的字符串(例如,保存),但说明应提供更多上下文,例如保存当前文档。
此属性必须本地化。默认情况下,此属性包含一个空字符串,并且Qt退回到使用工具提示来提供此信息。
访问函数:
QString accessibleDescription() const
void setAccessibleDescription(const QString &description)
另请参见QWidget :: accessibleName和QAccessibleInterface :: text()。
accessibleName : QString
此属性保存辅助技术看到的窗口小部件的名称。这是诸如屏幕阅读器之类的辅助技术宣布此窗口小部件的主要名称。
对于大多数窗口小部件,不需要设置此属性。
例如,对于QPushButton,将使用按钮的文本。当窗口小部件不提供任何文本时,设置此属性很重要。
例如,仅包含图标的按钮需要设置此属性才能与屏幕阅读器一起使用。该名称应简短,并且与小部件传达的视觉信息等效。
此属性必须本地化。
默认情况下,此属性包含一个空字符串。
访问函数:
QString accessibleName() const
void setAccessibleName(const QString &name)
另请参见QWidget :: accessibleDescription和QAccessibleInterface :: text()。
QList QWidget::actions() const
返回此小部件操作的列表(可能为空)。
另请参见contextMenuPolicy,insertAction()和removeAction()。
void QWidget::activateWindow()
将包含此窗口小部件的顶级窗口小部件设置为活动窗口。活动窗口是具有键盘输入焦点的可见顶级窗口。该功能执行与在顶级窗口的标题栏上单击鼠标相同的操作。
在X11上,结果取决于Window Manager。如果要确保窗口也堆叠在顶部,则还应该调用raise()。
请注意,该窗口必须可见,否则activateWindow()无效。
在Windows上,如果您在应用程序当前不是活动的应用程序时调用它,则它将不会使其成为活动的窗口。
它将更改任务栏条目的颜色,以指示窗口已经过某种更改。这是因为Microsoft不允许应用程序中断用户在另一个应用程序中当前正在执行的操作。
另请参见isActiveWindow(),window(),show()和QWindowsWindowFunctions :: setWindowActivationBehavior()。
void QWidget::addAction(QAction *action)
将操作操作追加到此小部件的操作列表中。所有QWidget都有一个QAction列表,但是可以用许多不同的方式以图形方式表示它们。
QAction列表(由actions()返回)的默认用法是创建上下文QMenu。一个QWidget只能有一个动作,添加一个已经存在的动作不会导致相同的动作在小部件中出现两次。操作的所有权不会转移到此QWidget。】
另请参见removeAction(),insertAction(),actions()和QMenu。
void QWidget::addActions(QList actions)
将操作操作追加到此小部件的操作列表中。
另请参见removeAction(),QMenu和addAction()。
void QWidget::adjustSize()
调整小部件的大小以适合其内容。
如果有效,则此函数使用sizeHint(),即,大小提示的宽度和高度> =0。否则,它将大小设置为覆盖所有子小部件的子矩形(所有子小部件矩形的并集)。对于Windows,还应考虑屏幕尺寸。
如果sizeHint()小于(200,100)并且大小策略正在扩展,则窗口将至少为(200,100)。窗口的最大大小是屏幕宽度和高度的2/3。
另请参见sizeHint()和childrenRect()。
autoFillBackground : bool
此属性保存是否自动填充窗口小部件背景如果启用,此属性将导致Qt在调用paint事件之前填充窗口小部件的背景。
使用的颜色由小部件调色板中的QPalette :: Window颜色角色定义。此外,除非设置了WA_OpaquePaintEvent或WA_NoSystemBackground属性,否则Windows始终会用QPalette :: Window填充。
如果小部件的父级对其背景具有静态渐变,则无法关闭此属性(即,将其设置为false)。
警告:请谨慎使用此属性和Qt样式表。当窗口小部件的样式表具有有效的背景或边框图像时,将自动禁用此属性。默认情况下,此属性为false。此属性在Qt 4.1中引入。
访问函数:
bool autoFillBackground() const
void setAutoFillBackground(bool enabled)
另请参见 Qt::WA_OpaquePaintEvent, Qt::WA_NoSystemBackground, and Transparency and Double Buffering.
QPalette::ColorRole QWidget::backgroundRole() const
返回窗口小部件的背景角色。
背景角色从小部件的调色板中定义用于渲染背景的画笔。
如果未设置任何显式后台角色,则该小部件继承其父小部件的背景角色。
另请参见setBackgroundRole()和foregroundRole()。
QBackingStore *QWidget::backingStore() const
返回此小部件将被绘制到的QBackingStore。此功能在Qt 5.0中引入。
baseSize : QSize
此属性保存小部件的基本大小。
如果小部件定义sizeIncrement(),则基本大小用于计算适当的小部件大小。默认情况下,对于新创建的小部件,此属性包含一个宽度和高度为零的大小。
访问函数:
QSize baseSize() const
void setBaseSize(const QSize &)
void setBaseSize(int basew, int baseh)

另请参见setSizeIncrement()。
QWidget *QWidget::childAt(int x, int y) const
返回小部件坐标系中(x,y)位置的可见子小部件。如果在指定位置没有可见的子窗口小部件,则该函数返回nullptr。
QWidget *QWidget::childAt(const QPoint &p) const
这是一个重载函数。返回窗口小部件自身坐标系中p点处的可见子窗口小部件。
childrenRect : const QRect
此属性保存窗口小部件的子项的边界矩形。不包括隐藏的子项。
默认情况下,对于没有子代的小部件,此属性包含一个位于原点的宽度和高度为零的矩形。
访问函数:
QRect childrenRect() const
另请参见childrenRegion()和geometry()。
childrenRegion : const QRegion
此属性保存由小部件的子项占据的合并区域。
不包括隐藏子项。
默认情况下,对于没有子代的窗口小部件,此属性包含一个空白区域。
访问函数:
QRegion childrenRegion() const
另请参见childrenRect(),geometry()和mask()。
void QWidget::clearFocus()
从小部件获取键盘输入焦点。
如果窗口小部件具有活动焦点,则会向该窗口小部件发送聚焦事件,以告知它已失去焦点。
此小部件必须启用焦点设置才能获取键盘输入焦点,即它必须调用setFocusPolicy()。
另请参见hasFocus(),setFocus(),focusInEvent(),focusOutEvent(),setFocusPolicy()和QApplication :: focusWidget()。
void QWidget::clearMask()
删除由setMask()设置的任何蒙版。
另请参见setMask()。
QMargins QWidget::contentsMargins() const
contentMargins函数返回小部件的内容边距。
此功能在Qt 4.6中引入。
另请参见setContentsMargins()和contentsRect()。
QRect QWidget::contentsRect() const
返回窗口小部件内的区域。
另请参见setContentsMargins()和contentsMargins()。
contextMenuPolicy : Qt::ContextMenuPolicy
窗口小部件如何显示上下文菜单。此属性的默认值为Qt :: DefaultContextMenu,这意味着将调用contextMenuEvent()处理函数。其他值是Qt :: NoContextMenu,Qt :: PreventContextMenu,Qt :: ActionsContextMenu和Qt :: CustomContextMenu。使用Qt :: CustomContextMenu,将发出信号customContextMenuRequested()。
访问函数:
Qt::ContextMenuPolicy contextMenuPolicy() const
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)
另请参见contextMenuEvent(),customContextMenuRequested()和actions()。
cursor : QCursor
此属性保存此小部件的光标形状鼠标光标悬停在此小部件上时将采用此形状。
有关一系列有用形状的信息,请参见预定义光标对象的列表。编辑器小部件可能使用I型光标:

如果未设置游标,或者在调用unsetCursor()之后,将使用父级的游标。默认情况下,此属性包含具有Qt :: ArrowCursor形状的光标。
如果鼠标离开小部件,即使鼠标被抓住,某些基础窗口实现也会重置游标。
如果要为所有窗口小部件设置光标,即使在窗口外,也可以考虑QGuiApplication :: setOverrideCursor()。
访问函数:
QCursor cursor() const
void setCursor(const QCursor &)
void unsetCursor()
另请参见QGuiApplication :: setOverrideCursor()。
WId QWidget::effectiveWinId() const
返回窗口小部件的有效窗口系统标识符,即本机父级的窗口系统标识符。
如果窗口部件是本地窗口部件,则此函数返回本地窗口部件ID。否则,返回第一个本机父窗口小部件的窗口ID,即包含此窗口小部件的顶层窗口小部件。
注意:我们建议您不要存储此值,因为它可能会在运行时更改。
此功能在Qt 4.4中引入。
另请参见nativeParentWidget()。
void QWidget::ensurePolished() const
确保小部件及其子级已被QStyle抛光(即具有正确的字体和调色板)。
QWidget在完全构造之后但在第一次显示之前调用此函数。如果要确保在执行操作之前将小部件打磨,可以调用此函数,例如,在小部件的sizeHint()重新实现中可能需要正确的字体大小。
请注意,此函数是从sizeHint()的默认实现中调用的。对于必须在所有构造函数(来自基类以及子类)被调用之后必须进行的最终初始化,抛光非常有用。如果在抛光小部件时需要更改某些设置,请重新实现event()并处理QEvent :: Polish事件类型。
注意:该函数声明为const,以便可以从其他const函数(例如sizeHint())中调用。
另请参阅event()。
focusPolicy : Qt::FocusPolicy
此属性保留窗口小部件接受键盘焦点的方式。
如果窗口小部件通过制表符接受键盘焦点,则策略为Qt :: TabFocus;
如果窗口小部件通过单击接受焦点,则策略为Qt :: ClickFocus;
如果窗口小部件同时接受焦点,则策略为Qt :: StrongFocus和Qt: :NoFocus(默认),如果它根本不接受焦点。
如果小部件处理键盘事件,则必须为其启用键盘焦点。
通常这是通过小部件的构造函数完成的。例如,QLineEdit构造函数调用setFocusPolicy(Qt :: StrongFocus)。
如果小部件具有焦点代理,则焦点策略将传播给它。
访问函数:
Qt::FocusPolicy focusPolicy() const
void setFocusPolicy(Qt::FocusPolicy policy)
另请参见focusInEvent(),focusOutEvent(),keyPressEvent(),keyReleaseEvent()和enabled。
QWidget *QWidget::focusWidget() const
返回已调用setFocus的此小部件的最后一个子级。\
对于顶级窗口小部件,如果此窗口被激活,则该窗口小部件将获得焦点。
这与QApplication :: focusWidget()不同,后者在当前活动的窗口中返回焦点小部件。
font : QFont
此属性保存当前为小部件设置的字体。
此属性描述小部件的请求字体。
呈现标准组件时,小部件的样式使用该字体,并且该字体可用来确保自定义小部件可以保持与本机平台外观的一致性。通常,不同的平台或不同的样式会为应用程序定义不同的字体。
当您为窗口小部件分配新字体时,该字体的属性将与窗口小部件的默认字体组合在一起以形成窗口小部件的最终字体。您可以调用fontInfo()以获得小部件最终字体的副本。最终字体也用于初始化QPainter的字体。
默认值取决于系统环境。 QApplication维护一种系统/主题字体,它是所有小部件的默认字体。对于某些类型的小部件,可能还会有特殊的字体默认值。您还可以通过将自定义字体和窗口小部件的名称传递给QApplication :: setFont()来为窗口小部件定义默认字体。最后,将字体与Qt的字体数据库进行匹配以找到最佳匹配。
QWidget将显式字体属性从父级传播到子级。如果您更改字体的特定属性并将该字体分配给窗口小部件,则该属性将传播到窗口小部件的所有子级,从而覆盖该属性的所有系统默认值。请注意,默认情况下,除非启用了Qt :: WA_WindowPropagation属性,否则字体不会传播到窗口(请参见isWindow())。 QWidget的字体传播类似于其调色板传播。
当前样式用于呈现所有标准Qt小部件的内容,可以自由选择使用小部件字体,或者在某些情况下可以忽略(部分或完全)它。特别是,某些样式(例如GTK样式,Mac样式和Windows Vista样式)会对小部件字体进行特殊修改,以匹配平台的本机外观。因此,不能保证将属性分配给窗口小部件的字体会更改窗口小部件的外观。相反,您可以选择应用styleSheet。
注意:如果Qt样式表与setFont()在同一小部件上使用,则如果设置冲突,样式表将优先。
访问函数:
const QFont & font() const
void setFont(const QFont &)
另请参见fontInfo()和fontMetrics()。
QFontInfo QWidget::fontInfo() const
返回小部件当前字体的字体信息。
等效于QFontInfo(widget-> font())。
另请参见font(),fontMetrics()和setFont()。
QFontMetrics QWidget::fontMetrics() const
返回小部件当前字体的字体指标。
等效于QFontMetrics(widget-> font())。
另请参见font(),fontInfo()和setFont()。
QPalette::ColorRole QWidget::foregroundRole() const
返回前台角色。前景角色从小部件的调色板定义用于绘制前景的颜色。
如果未设置任何显式的前台角色,则该函数将返回一个与后台角色相反的角色。
另请参见setForegroundRole()和backgroundRole()。
frameGeometry : const QRect
小部件相对于其父级(包括任何窗口框架)的几何形状有关窗口几何问题的概述,请参见“窗口几何”文档。默认情况下,此属性包含一个取决于用户平台和屏幕几何形状的值。
访问函数:
QRect frameGeometry() const
另请参见geometry(),x(),y()和pos()。
frameSize : const QSize
此属性保存包含任何窗口框架的窗口小部件的大小。
默认情况下,此属性包含一个值,该值取决于用户的平台和屏幕几何形状。
访问函数:
QSize frameSize() const
geometry : QRect
此属性保存窗口小部件相对于其父窗口的几何形状,但不包括窗口框架。更改几何时,窗口小部件(如果可见)立即接收到移动事件(moveEvent())和/或调整大小事件(resizeEvent())。
如果窗口小部件当前不可见,则可以确保在显示窗口小部件之前先接收适当的事件。
如果大小分量超出由minimumSize()和maximumSize()定义的范围,则将对其进行调整。
警告:在resizeEvent()或moveEvent()中调用setGeometry()可能导致无限递归。有关Windows几何问题的概述,请参见“窗口几何”文档。默认情况下,此属性包含一个取决于用户平台和屏幕几何形状的值。
访问函数:
const QRect & geometry() const
void setGeometry(int x, int y, int w, int h)

void setGeometry(const QRect &)
另请参见frameGeometry(),rect(),move(),resize(), moveEvent(),resizeEvent(),minimumSize()和maximumSize()。
QPixmap QWidget::grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))
将窗口小部件渲染为受给定矩形限制的像素图。如果小部件有任何子代,则它们也将被绘制在适当的位置。如果指定了无效尺寸的矩形(默认值),则会绘制整个窗口小部件。此功能在Qt 5.0中引入。注意:可以通过元对象系统和QML调用此函数。请参阅Q_INVOKABLE。
另请参见render()和QPixmap。
void QWidget::grabGesture(Qt::GestureType gesture, Qt::GestureFlags flags = Qt::GestureFlags())
使用特定标志将小部件订阅给定手势。
此功能在Qt 4.6中引入。
另请参见ungrabGesture()和QGestureEvent。
void QWidget::grabKeyboard()
抓取键盘输入。这个小部件接收所有键盘事件,直到调用releaseKeyboard()为止;其他小部件完全没有键盘事件。
鼠标事件不受影响。如果要抓取,请使用grabMouse()。焦点小部件不受影响,只是它不接收任何键盘事件。 setFocus()照常移动焦点,但是新的焦点小部件仅在调用releaseKeyboard()之后才接收键盘事件。
如果当前有其他窗口小部件正在捕获键盘输入,则首先释放该窗口小部件的捕获。
另请参见releaseKeyboard(),grabMouse(),releaseMouse()和focusWidget()。
void QWidget::grabMouse()
抓住鼠标输入。
这个小部件接收所有鼠标事件,直到调用releaseMouse()为止;其他小部件完全没有鼠标事件。键盘事件不受影响。如果要抓取,请使用grabKeyboard()。
警告:鼠标抓取应用程序中的错误经常会锁定终端。
谨慎使用此功能,并在调试时考虑使用-nograb命令行选项。使用Qt时几乎不需要抓住鼠标,因为Qt会明智地抓住并释放它。特别是,Qt会在按下鼠标按钮时抓住鼠标,并一直保持到释放最后一个按钮为止。
注意:只有可见的窗口小部件才能捕获鼠标输入。如果isVisible()对于某个窗口小部件返回false,则该窗口小部件无法调用grabMouse()。
注意:在Windows上,仅当鼠标位于进程所拥有的窗口内时,grabMouse()才起作用。在macOS上,仅当鼠标位于该小部件的框架内时,grapMouse()才起作用。
另请参见releaseMouse(),grabKeyboard()和releaseKeyboard()。
void QWidget::grabMouse(const QCursor &cursor)
该函数重载了grabMouse()。抓住鼠标输入并更改光标形状。
光标将采用形状光标(只要抓住了鼠标焦点),并且此小部件将是唯一接收鼠标事件的部件,直到调用releaseMouse()为止。
警告:抓住鼠标可能会锁定终端。注意:请参阅QWidget :: grabMouse()中的注释。
另请参见releaseMouse(),grabKeyboard(),releaseKeyboard()和setCursor()。
int QWidget::grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut)
将快捷方式添加到Qt的快捷方式系统中,该快捷方式在给定的上下文中监视给定的键序列。
如果上下文是Qt :: ApplicationShortcut,则该快捷方式将应用于整个应用程序。否则,它不是此窗口小部件Qt :: WidgetShortcut的本地窗口,还是窗口本身的Qt :: WindowShortcut的本地窗口。
如果多个窗口小部件捕获了相同的键序列,则在发生键序列时,会以不确定的顺序将QEvent :: Shortcut事件发送到所有对其应用的窗口小部件,但设置了“模糊”标志真实。
警告:您通常不需要使用此功能。而是使用所需的快捷键序列创建QActions(如果您还需要等效的菜单选项和工具栏按钮),或者如果只需要按键序列,则创建QShortcuts。 QAction和QShortcut都可以为您处理所有事件过滤,并提供在用户触发键序列时触发的信号,因此比该底层函数更易于使用。
另请参见releaseShortcut()和setShortcutEnabled()。
QGraphicsProxyWidget QWidget::graphicsProxyWidget() const
返回图形视图中相应嵌入式窗口小部件的代理窗口小部件;否则返回nullptr。
此功能在Qt 4.5中引入。
另请参见QGraphicsProxyWidget :: createProxyForChildWidget()和QGraphicsScene :: addWidget()。
bool QWidget::hasEditFocus() const
如果此小部件当前具有编辑焦点,则返回true;否则返回true。否则为假。此功能仅在Qt for Embedded Linux中可用。
另请参见setEditFocus()和QApplication :: navigationMode()。
focus : const bool
此属性保存此小部件(或其焦点代理)是否具有键盘输入焦点。默认情况下,此属性为false。
注意:为窗口小部件获取此属性的值实际上等效于检查QApplication :: focusWidget()是否引用窗口小部件。
访问函数:
bool hasFocus() const
另请参见setFocus(),clearFocus(),setFocusPolicy()和QApplication :: focusWidget()。
bool QWidget::hasHeightForWidth() const
如果小部件的首选高度取决于其宽度,则返回true;否则,返回false。
此功能在Qt 5.0中引入。
mouseTracking : bool
此属性保存是否为窗口小部件启用了鼠标跟踪如果禁用了鼠标跟踪(默认设置),则仅在移动鼠标时按下至少一个鼠标按钮时,窗口小部件才会接收鼠标移动事件。
如果启用了鼠标跟踪,则即使未按下任何按钮,小部件也将接收鼠标移动事件。
访问函数:
bool hasMouseTracking() const
void setMouseTracking(bool enable)
另请参见mouseMoveEvent()。
tabletTracking : bool
此属性保存是否为小部件启用了数位板跟踪如果禁用了数位板跟踪(默认设置),则当手写笔与数位板接触时,或在按下该笔时至少按下一个笔针按钮时,小部件仅接收数位板移动事件。被感动。
如果启用了数位板跟踪,则即使将鼠标悬停在附近,小部件也会接收数位板移动事件。这对于监视位置以及辅助属性(例如旋转和倾斜)以及在UI中提供反馈很有用。
此属性在Qt 5.9中引入。
访问函数:
bool hasTabletTracking() const
void setTabletTracking(bool enable)
另请参见tabletEvent()。
height : const int
此属性保存窗口小部件的高度,不包括任何窗口框架。有关窗口的几何问题的概述,请参见“窗口几何”文档。
注意:请勿使用此功能在多屏幕桌面上查找屏幕的高度。请阅读此说明以获取详细信息。默认情况下,此属性包含一个取决于用户平台和屏幕几何形状的值。
访问函数:
int height() const
另请参见geometry, width, and size。
int QWidget::heightForWidth(int w) const
给定宽度w,返回此小部件的首选高度。
如果此窗口小部件具有布局,则默认实现将返回布局的首选高度。
如果没有布局,则默认实现将返回-1,指示首选高度不取决于宽度。
inputMethodHints : Qt::InputMethodHints
特定于输入法的提示提示小部件具有的内容。
这仅与输入窗口小部件有关。输入法使用它来检索有关输入法应如何操作的提示。
例如,如果设置了Qt :: ImhFormattedNumbersOnly标志,则输入法可能会更改其可视组件以反映只能输入数字。
警告:某些小部件需要某些标志才能正常工作。要设置标志,请执行w-> setInputMethodHints(w-> inputMethodHints()| f)而不是w-> setInputMethodHints(f)。
注意:标志只是提示,因此特定的输入法实现可以随意忽略它们。如果要确保输入了某种类型的字符,则还应该在小部件上设置QValidator。
默认值为Qt :: ImhNone。此属性在Qt 4.6中引入。
访问函数:
Qt::InputMethodHints inputMethodHints() const
void setInputMethodHints(Qt::InputMethodHints hints)
另请参见inputMethodQuery()。
QVariant QWidget::inputMethodQuery(Qt::InputMethodQuery query) const
此方法仅与输入窗口小部件有关。
输入法使用它来查询窗口小部件的一组属性,以便能够支持复杂的输入法操作,以支持周围的文本和重新转换。
查询指定要查询的属性。
另请参见inputMethodEvent(),QInputMethodEvent,QInputMethodQueryEvent和inputMethodHints。
void QWidget::insertAction(QAction *before, QAction *action)
在操作之前,将操作操作插入到此小部件的操作列表中。
如果before为nullptr或before不是对此小部件的有效操作,则它将追加操作。一个QWidget应该只有一个动作。
另请参见removeAction(),addAction(),QMenu,contextMenuPolicy和actions()。
void QWidget::insertActions(QAction *before, QList actions)
在操作之前,将操作操作插入到此小部件的操作列表中。
如果before为nullptr或before不是对此小部件的有效操作,则它将追加操作。
一个QWidget最多可以包含每个动作之一。
另请参见removeAction(),QMenu,insertAction()和contextMenuPolicy。
isActiveWindow : const bool
此属性保存此窗口小部件的窗口是否为活动窗口。
活动窗口是包含具有键盘焦点的窗口小部件的窗口(如果该窗口小部件不包含窗口小部件,或者该窗口小部件都不接受键盘焦点,则该窗口可能仍具有焦点)。
当弹出窗口可见时,此属性对于活动窗口和弹出窗口均为true。默认情况下,此属性为false。
访问函数:
bool isActiveWindow() const
另请参见activateWindow()和QApplication :: activeWindow()。
bool QWidget::isAncestorOf(const QWidget *child) const
如果此窗口小部件是给定子项的父级(或祖父母等等),并且两个窗口小部件都在同一窗口内,则返回true。否则返回false。
enabled : bool
此属性保存是否启用了窗口小部件。通常,已启用的窗口小部件处理键盘和鼠标事件。禁用的小部件则不会。 QAbstractButton例外。某些小部件在禁用时会以不同的方式显示。例如,按钮可能会将其标签绘制为灰色。
如果您的小部件需要知道何时启用或禁用它,则可以将changeEvent()与QEvent :: EnabledChange类型一起使用。禁用小部件会隐式禁用其所有子项。分别启用所有子控件,除非已明确禁用它们。当其父窗口小部件保持禁用状态时,不可能显式启用不是窗口的子窗口小部件。
默认情况下,此属性为true。
访问函数:
bool isEnabled() const
void setEnabled(bool)
另请参见isEnabledTo(),QKeyEvent,QMouseEvent和changeEvent()。
bool QWidget::isEnabledTo(const QWidget *ancestor) const
如果启用了祖先,则如果启用了此小部件,则返回true;否则,返回false。
如果未明确禁用小部件本身或直到父级(但不包括父级)的每个父级,则属于这种情况。
如果此小部件或其显式禁用,则isEnabledTo(0)返回false。祖先一词在此表示同一窗口中的父窗口小部件。因此,isEnabledTo(0)停在此小部件的窗口,与isEnabled()不同,isEnabled()也考虑了父窗口。
另请参见setEnabled()和enabled。
fullScreen : const bool
此属性保存是否以全屏模式显示窗口小部件。处于全屏模式的窗口小部件占据整个屏幕区域,并且不显示窗口装饰,例如标题栏。
默认情况下,此属性为false。
访问函数:
bool isFullScreen() const
另请参见windowState(), minimized, and maximized。
bool QWidget::isHidden() const
如果小部件被隐藏,则返回true,否则返回false。仅当调用show()时隐藏的窗口小部件才可见。显示父项时,不会自动显示。要检查可见性,请改用!isVisible()(注意感叹号)。 isHidden()暗示!isVisible(),但是小部件可能不可见,也不能同时隐藏。属于不可见小部件的子部件的小部件就是这种情况。
如果满足以下条件,则将小部件隐藏:将它们创建为独立窗口,将它们创建为可见小部件的子级,并调用hide()或setVisible(false)。
maximized : const bool
此属性保存此窗口小部件是否最大化。此属性仅与Windows有关。
注意:由于某些窗口系统的限制,它并不总是报告预期的结果(例如,如果X11上的用户通过窗口管理器最大化窗口,则Qt无法将其与任何其他调整大小区分开)。随着窗口管理器协议的发展,这种情况有望得到改善。
默认情况下,此属性为false。
访问函数:
bool isMaximized() const
另请参见windowState(), showMaximized(), visible, show(), hide(), showNormal(), and minimized。
minimized : const bool
此属性保存是否最小化(图标化)此窗口小部件。
此属性仅与Windows有关。默认情况下,此属性为false。
访问函数:
bool isMinimized() const
另请参见showMinimized(), visible, show(), hide(), showNormal(), and maximized。
modal : const bool
此属性保存窗口小部件是否为模式窗口小部件。
此属性仅对Windows有意义。模态窗口小部件可防止所有其他窗口中的窗口小部件获得任何输入。
默认情况下,此属性为false。
访问函数:
bool isModal() const
另请参见isWindow(),windowModality和QDialog。
visible : bool
此属性保存窗口小部件是否可见,如果直到窗口的所有父窗口小部件都可见,则调用setVisible(true)或show()会将窗口小部件设置为可见状态。
如果祖先不可见,则在显示其所有祖先之前,该窗口小部件将不可见。
如果其大小或位置已更改,则Qt保证窗口小部件会在显示之前立即移动并调整大小。
如果尚未调整窗口小部件的大小,Qt将使用adjustSize()将窗口小部件的大小调整为有用的默认值。调用setVisible(false)或hide()会显式隐藏小部件。除非您显示它,否则即使它的所有祖先都可见,显式隐藏的窗口小部件也将永远不可见。当控件的可见性状态更改时,它会接收显示和隐藏事件。
在隐藏事件和显示事件之间,无需浪费CPU周期来准备或向用户显示信息。例如,视频应用程序可能只是停止生成新帧。屏幕上其他窗口遮挡的窗口小部件被视为可见。图标化的窗口和存在于另一个虚拟桌面(在支持此概念的平台上)上的窗口也是如此。
当窗口系统更改其映射状态(例如,窗口小部件)时,窗口小部件会自发显示和隐藏事件。用户最小化窗口时发生自发的隐藏事件,再次恢复窗口时发生自发的显示事件。您几乎不需要重新实现setVisible()函数。如果需要在显示小部件之前更改某些设置,请改用showEvent()。
如果您需要进行一些延迟的初始化,请使用传递给event()函数的波兰事件。
访问函数:
bool isVisible() const
virtual void setVisible(bool visible)
另请参见show(),hide(),isHidden(),isVisibleTo(),isMinimized(),showEvent()和hideEvent()。
bool QWidget::isVisibleTo(const QWidget *ancestor) const
如果显示祖先,则此小部件将变为可见,则返回true;否则,返回false。
如果小部件本身或直到父级(但不包括父级)的任何父级都没有被显式隐藏,则发生真实情况。如果窗口小部件被屏幕上的其他窗口遮挡,则此函数仍将返回true,但是如果将其移动或将其移动,则该窗口在物理上是可见的。
isVisibleTo(0)与isVisible()相同。
另请参见show(),hide()和isVisible()。
bool QWidget::isWindow() const
如果小部件是一个独立的窗口,则返回true;否则,返回false。
窗口是一个小部件,在视觉上不是任何其他小部件的子级,并且通常具有框架和窗口标题。窗口可以具有父窗口小部件。然后,它将与它的父项组合在一起,并在删除父项时被删除,在最小化父项时被最小化等。如果窗口管理器支持,它还将具有与其父项相同的任务栏条目。
默认情况下,即使在构造函数中指定了父窗口小部件,QDialog和QMainWindow小窗口也是默认窗口。此行为由Qt :: Window标志指定。
另请参见window(),isModal()和parentWidget()。
windowModified : bool
此属性保存窗口中显示的文档是否有未保存的更改。
修改后的窗口是内容已更改但尚未保存到磁盘的窗口。该标志将因平台而异。在macOS上,关闭按钮的外观会有所修改;在其他平台上,窗口标题将带有“ *”(星号)。
窗口标题必须包含“ [
]”占位符,该占位符指示应在何处显示“ ”。通常,它应该出现在文件名之后(例如,“ document1.txt []-文本编辑器”)。如果未修改窗口,则仅删除占位符。
请注意,如果将小部件设置为已修改,则其所有祖先也将被设置为已修改。但是,如果在窗口小部件上调用setWindowModified(false),它将不会传播到其父级,因为可能已修改了该父级的其他子级。
访问函数:
bool isWindowModified() const
void setWindowModified(bool)
另请参见 windowTitle, Application Example, SDI Example, and MDI Example。
QLayout *QWidget::layout() const
返回此窗口小部件上安装的布局管理器;
如果未安装任何布局管理器,则返回nullptr。布局管理器设置已添加到布局的小部件的子代的几何形状。
另请参见setLayout(),sizePolicy()和Layout Management。
layoutDirection : Qt::LayoutDirection
此属性保存此窗口小部件的布局方向。
默认情况下,此属性设置为Qt :: LeftToRight。在窗口小部件上设置布局方向时,它将传播到窗口小部件的子级,但不会传播到窗口的子级,也不会传播到已为其显式调用setLayoutDirection()的子级。另外,在为父级调用setLayoutDirection()之后添加的子级小部件不会继承父级的布局方向。
从Qt 4.7开始,此方法不再影响文本布局方向。
访问函数:
Qt::LayoutDirection layoutDirection() const
void setLayoutDirection(Qt::LayoutDirection direction)
void unsetLayoutDirection()
另请参见QApplication :: layoutDirection。
locale : QLocale
此属性保存窗口小部件的语言环境,只要未设置特殊的语言环境,就可以是父级的语言环境,也可以是默认语言环境(如果此窗口小部件是顶级窗口小部件)。
如果窗口小部件显示日期或数字,则应使用窗口小部件的语言环境设置日期或数字的格式。此属性在Qt 4.3中引入。
访问函数
QLocale locale() const
void setLocale(const QLocale &locale)
void unsetLocale()
另请参见QLocale和QLocale :: setDefault()。
QPoint QWidget::mapFrom(const QWidget *parent, const QPoint &pos) const
将小部件坐标pos从父级坐标系转换为该小部件的坐标系。父级不能为nullptr,并且必须是调用小部件的父级。
另请参见mapTo(),mapFromParent(),mapFromGlobal()和underMouse()。
QPoint QWidget::mapFromGlobal(const QPoint &pos) const
将全局屏幕坐标pos转换为小部件坐标。
另请参见mapToGlobal(),mapFrom()和mapFromParent()。
QPoint QWidget::mapFromParent(const QPoint &pos) const
将父窗口小部件坐标pos转换为窗口小部件坐标。如果小部件没有父项,则与mapFromGlobal()相同。
另请参见mapToParent(),mapFrom(),mapFromGlobal()和underMouse()。
QRegion QWidget::mask() const
返回当前在窗口小部件上设置的蒙版。如果未设置任何掩码,则返回值将为空白区域。
另请参见setMask(),clearMask(),QRegion :: isEmpty()和Shaped Clock示例。
maximumHeight : int
此属性保存窗口小部件的最大高度(以像素为单位)。此属性对应于maximumSize属性保持的高度。默认情况下,此属性包含一个值16777215。注意:QWIDGETSIZE_MAX宏的定义限制了小部件的最大大小。
访问函数:
int maximumHeight() const
void setMaximumHeight(int maxh)
另请参见maximumSize和maximumWidth。
maximumSize : QSize
此属性保存窗口小部件的最大大小(以像素为单位)。不能将窗口小部件的大小调整为大于窗口小部件的最大大小。默认情况下,此属性包含的大小的宽度和高度的值均为16777215。
注意:QWIDGETSIZE_MAX宏的定义限制了小部件的最大大小。
访问函数:
QSize maximumSize() const
void setMaximumSize(const QSize &)
void setMaximumSize(int maxw, int maxh)

另请参见maximumWidth,maximumHeight,minimumSize和sizeIncrement。
maximumWidth : int
此属性保存窗口小部件的最大宽度(以像素为单位)。
此属性对应于maximumSize属性所保持的宽度。默认情况下,此属性包含一个值16777215。注意:QWIDGETSIZE_MAX宏的定义限制了小部件的最大大小。
访问函数:
int maximumWidth() const
void setMaximumWidth(int maxw)
另请参见maximumSize和maximumHeight。
minimumHeight : int
此属性保存窗口小部件的最小高度(以像素为单位)。
此属性对应于minimumSize属性保持的高度。默认情况下,此属性的值为0。
访问函数:
int minimumHeight() const
void setMinimumHeight(int minh)
另请参见minimumSize和minimumWidth。
minimumSize : QSize
此属性保存窗口小部件的最小大小。无法将窗口小部件的大小调整为小于窗口小部件的最小大小。
如果当前大小较小,则将小部件的大小强制为最小大小。此函数设置的最小大小将覆盖QLayout定义的最小大小。为了取消设置最小大小,请使用QSize(0,0)的值。
默认情况下,此属性包含一个宽度和高度为零的大小。
访问函数:
QSize minimumSize() const
void setMinimumSize(const QSize &)
void setMinimumSize(int minw, int minh)

另请参见minimumWidth,minimumHeight,maximumSize和sizeIncrement。
minimumSizeHint : const QSize
此属性保存建议的窗口小部件最小尺寸。如果此属性的值是无效尺寸,则不建议使用最小尺寸。
如果没有此小部件的布局,minimumSizeHint()的默认实现将返回无效的大小,否则,将返回布局的最小大小。大多数内置窗口小部件会重新实现minimumSizeHint()。除非设置了minimumSize()或将大小策略设置为QSizePolicy :: Ignore,否则QLayout绝不会将窗口小部件的大小调整为小于最小大小提示。
如果设置了minimumSize(),则最小尺寸提示将被忽略。
访问函数:
virtual QSize minimumSizeHint() const
另请参见QSize :: isValid(),resize(),setMinimumSize()和sizePolicy()。
minimumWidth : int
此属性保存窗口小部件的最小宽度(以像素为单位)。
此属性对应于minimumSize属性保持的宽度。默认情况下,此属性的值为0。
访问函数:
int minimumWidth() const
void setMinimumWidth(int minw)
另请参见minimumSize和minimumHeight。
pos : QPoint
此属性保存窗口小部件在其父窗口小部件中的位置。
如果窗口小部件是窗口,则该位置是桌面上窗口小部件(包括其框架)的位置。更改位置时,小部件(如果可见)会立即接收一个移动事件(moveEvent())。
如果该窗口小部件当前不可见,则可以保证在显示该事件之前会收到一个事件。
默认情况下,此属性包含一个指向原点的位置。警告:在moveEvent()中调用move()或setGeometry()可能导致无限递归。有关Windows几何问题的概述,请参见“窗口几何”文档。
访问函数:
QPoint pos() const
void move(int x, int y)

void move(const QPoint &)
另请参见frameGeometry,size,x()和y()。
void QWidget::move(int x, int y)
这是一个重载函数。这对应于move(QPoint(x,y))。
注意:属性pos的setter函数。
QWidget *QWidget::nativeParentWidget() const
返回此窗口小部件的本机父级,即下一个具有系统标识符的祖先窗口部件,如果没有任何本机父级,则返回nullptr。
此功能在Qt 4.4中引入。
另请参见effectiveWinId()。
QWidget *QWidget::nextInFocusChain() const
返回此小部件的焦点链中的下一个小部件。
另请参见previousInFocusChain()。
normalGeometry : const QRect
此属性保留窗口小部件的几何形状,当它显示为普通(非最大化或全屏)顶级窗口小部件时将显示。
对于子窗口小部件,此属性始终包含一个空矩形。默认情况下,此属性包含一个空矩形。
访问函数:
QRect normalGeometry() const
参见QWidget :: windowState()和QWidget :: geometry。
void QWidget::overrideWindowFlags(Qt::WindowFlags flags)
将窗口小部件的窗口标志设置为标志,而无需告知窗口系统。
警告:除非您真的知道自己在做什么,否则不要调用此函数。另请参见setWindowFlags()。
palette : QPalette
此属性保存小部件的调色板。此属性描述小部件的调色板。呈现标准组件时,窗口小部件的样式使用该调色板,并且可以用作确保自定义窗口小部件可以与本机平台的外观保持一致的一种方式。
不同的平台或不同的样式具有不同的调色板是很常见的。当您为窗口小部件分配新的调色板时,该调色板中的颜色角色将与窗口小部件的默认调色板组合在一起,以形成窗口小部件的最终调色板。小部件的背景角色的调色板条目用于填充小部件的背景(请参阅QWidget :: autoFillBackground),而前景角色则初始化QPainter的笔。
默认值取决于系统环境。 QApplication维护一个系统/主题面板,它是所有小部件的默认选项。对于某些类型的小部件,可能还会有特殊的调色板默认设置(例如,在Windows Vista上,从QMenuBar派生的所有类都具有特殊的默认调色板)。您还可以通过向QApplication :: setPalette()传递自定义调色板和窗口小部件名称,来为窗口小部件定义默认调色板。
最后,样式始终可以选择在分配调色板时对其进行抛光(请参见QStyle :: polish())。
QWidget将显式调色板角色从父级传播到子级。如果将画笔或颜色分配给调色板上的特定角色,然后将该调色板分配给小部件,则该角色将传播到所有小部件的子级,从而覆盖该角色的所有系统默认值。
请注意,除非启用了Qt :: WA_WindowPropagation属性,否则默认情况下,调色板不会传播到窗口(请参见isWindow())。
QWidget的调色板传播类似于其字体传播。
当前样式用于呈现所有标准Qt小部件的内容,可以自由地从小部件调色板中选择颜色和画笔,或者在某些情况下可以忽略调色板(部分或全部)。特别是,某些样式(例如GTK样式,Mac样式和Windows Vista样式)依赖于第三方API来呈现窗口小部件的内容,并且这些样式通常不遵循调色板。因此,不能保证将角色分配给窗口小部件的调色板会更改窗口小部件的外观。
相反,您可以选择应用styleSheet。
警告:请勿将此功能与Qt样式表一起使用。使用样式表时,可以使用“颜色”,“背景颜色”,“选择颜色”,“选择背景颜色”和“替代背景颜色”来自定义窗口小部件的调色板。
访问函数:
const QPalette & palette() const
void setPalette(const QPalette &)
另请参见QGuiApplication :: palette(),QWidget :: font()和Qt样式表。
QWidget *QWidget::parentWidget() const
返回此窗口小部件的父级,如果没有任何父窗口小部件,则返回nullptr。
QWidget *QWidget::previousInFocusChain() const
previousInFocusChain函数返回此小部件的焦点链中的上一个小部件。
此功能在Qt 4.6中引入。
另请参见nextInFocusChain()。
rect : const QRect
此属性保存窗口小部件的内部几何结构,不包括任何窗口框架。rect属性等于QRect(0,0,width(),height())。
有关Windows几何问题的概述,请参见“窗口几何”文档。
默认情况下,此属性包含一个取决于用户平台和屏幕几何形状的值。
访问函数:
QRect rect() const
另请参见size。
void QWidget::releaseKeyboard()
释放键盘把手。
另请参见grabKeyboard(),grabMouse()和releaseMouse()。
void QWidget::releaseMouse()
释放鼠标夹。
另请参见grabMouse(),grabKeyboard()和releaseKeyboard()。
void QWidget::releaseShortcut(int id)
从Qt的快捷方式系统中删除具有给定ID的快捷方式。
该小部件将不再接收该快捷方式的键序列的QEvent :: Shortcut事件(除非它具有具有相同键序列的其他快捷方式)。
警告:由于Qt的快捷方式系统在其父窗口小部件销毁时会自动删除快捷方式,因此通常不需要使用此功能。最好使用QAction或QShortcut来处理快捷方式,因为它们比此低级功能更易于使用。还要注意,这是一个昂贵的操作。
另请参见grabShortcut()和setShortcutEnabled()。
void QWidget::removeAction(QAction *action)
从此小部件的动作列表中删除动作动作。
另请参见insertAction(),actions()和insertAction()。
void QWidget::render(QPaintDevice *target, const QPoint &targetOffset = QPoint(),const QRegion &sourceRegion =QRegion(), QWidget::RenderFlags renderFlags =RenderFlags(DrawWindowBackground | DrawChildren))
使用renderFlags将此小部件的sourceRegion渲染到目标中,以确定如何渲染。渲染从target中的targetOffset开始。
例如:

如果sourceRegion为空区域,则此函数将使用QWidget :: rect()作为区域,即整个窗口小部件。在渲染之前,请确保为目标设备的活动绘画程序(如果有)调用QPainter :: end()。
例如:

注意:要获取QOpenGLWidget的内容,请改用QOpenGLWidget :: grabFramebuffer()。
注意:要获取QGLWidget的内容(不建议使用),请改用QGLWidget :: grabFrameBuffer()或QGLWidget :: renderPixmap()。
此功能在Qt 4.3中引入。
void QWidget::render(QPainter *painter, const QPoint &targetOffset = QPoint(),const QRegion &sourceRegion =QRegion(), QWidget::RenderFlags renderFlags =RenderFlags(DrawWindowBackground | DrawChildren))
这是一个重载函数。将窗口小部件渲染到画家的QPainter :: device()中。渲染时将使用应用于画家的变换和设置。
注意:画家必须处于活动状态。在macOS上,小部件将呈现为QPixmap,然后由绘画者绘制。
另请参见QPainter :: device()。
void QWidget::repaint(int x, int y, int w, int h)
这是一个重载函数。此版本在小部件内重新绘制了一个矩形(x,y,w,h)。如果w为负数,则将其替换为width()-x,如果h为负数,则将其替换为width height()-y。
void QWidget::repaint(const QRect &rect)
这是一个重载函数。
此版本在小部件内重新绘制矩形rect。
void QWidget::repaint(const QRegion &rgn)
这是一个重载函数。
此版本在小部件内重新绘制了rgn区域。
void QWidget::resize(int w, int h)
这是一个重载函数。
这对应于resize(QSize(w,h))。注意:属性大小的设置函数。
void QWidget::resizeEvent(QResizeEvent *event)
可以在子类中重新实现此事件处理程序,以接收在event参数中传递的窗口小部件调整大小事件。调用resizeEvent()时,小部件已经具有新的几何形状。可以通过QResizeEvent :: oldSize()访问旧大小。
在处理调整大小事件后,该窗口小部件将被擦除并立即收到一个绘制事件。在此处理程序内无需(或不应)进行绘制。
另请参见moveEvent(),event(),resize(),QResizeEvent,paintEvent()和Scribble示例。
bool QWidget::restoreGeometry(const QByteArray &geometry)
恢复存储在字节数组几何中的顶级窗口小部件的几何和状态。成功返回true;否则返回false。
如果还原的几何不在屏幕上,它将被修改为位于可用的屏幕几何之内。要恢复使用QSettings保存的几何,可以使用如下代码:

有关Windows几何问题的概述,请参见“窗口几何”文档。
使用QMainWindow :: restoreState()恢复工具栏和停靠小部件的几何形状和状态。此功能在Qt 4.2中引入。另请参见saveGeometry(),QSettings,QMainWindow :: saveState()和QMainWindow :: restoreState()。
QByteArray QWidget::saveGeometry() const
保存顶级小部件的当前几何图形和状态。要在窗口关闭时保存几何,可以实现如下的close事件:

有关Windows几何问题的概述,请参见“窗口几何”文档。使用QMainWindow :: saveState()保存几何图形以及工具栏和停靠小部件的状态。
此功能在Qt 4.2中引入。
另请参见restoreGeometry(),QMainWindow :: saveState()和QMainWindow :: restoreState()。
QScreen *QWidget::screen() const
返回窗口小部件所在的屏幕。
这个功能是在Qt 5.14中引入的。
另请参见windowHandle()。
void QWidget::scroll(int dx, int dy)
将小部件及其子dx像素向右滚动,并dy向下滚动。
dx和dy都可能为负。滚动后,小部件将接收需要重新绘制区域的绘制事件。对于Qt知道是不透明的小部件,这只是新暴露的部分。
例如,如果将不透明的小部件向左滚动8个像素,则只需更新右侧边缘的8个像素宽的条纹。
由于小部件默认情况下会传播其父级的内容,因此您需要设置autoFillBackground属性,或使用setAttribute()设置Qt :: WA_OpaquePaintEvent属性,以使小部件不透明。
对于使用内容传播的小部件,滚动将导致整个滚动区域的更新。
另请参见透明度和双缓冲。
void QWidget::scroll(int dx, int dy, const QRect &r)
这是一个重载函数。
此版本仅滚动r,不会移动小部件的子级。如果r为空或无效,则结果不确定。另请参见QScrollArea。
acceptDrops : bool
此属性保存是否为此窗口小部件启用了放置事件。
将此属性设置为true会向系统宣布此窗口小部件可能能够接受放置事件。如果窗口小部件是桌面(windowType()== Qt :: Desktop),则在另一个应用程序正在使用桌面的情况下,此操作可能会失败。
您可以调用acceptDrops()来测试是否发生这种情况。警告:请勿在拖放事件处理程序中修改此属性。
默认情况下,此属性为false。
访问函数:
bool acceptDrops() const
void setAcceptDrops(bool on)
另请参见Drag and Drop。
accessibleDescription : QString
此属性保存辅助技术所看到的小部件的描述。小部件的可访问描述应传达小部件的功能。
尽管accessibleName应该是简短的字符串(例如,保存),但说明应提供更多上下文,例如保存当前文档。此属性必须本地化。
默认情况下,此属性包含一个空字符串,并且Qt退回到使用工具提示来提供此信息。
访问函数
QString accessibleDescription() const
void setAccessibleDescription(const QString &description)
另请参见QWidget :: accessibleName和QAccessibleInterface :: text()。
accessibleName : QString
此属性保存辅助技术看到的窗口小部件的名称。
这是诸如屏幕阅读器之类的辅助技术宣布此窗口小部件的主要名称。对于大多数窗口小部件,不需要设置此属性。
例如,对于QPushButton,将使用按钮的文本。当窗口小部件不提供任何文本时,设置此属性很重要。例如,仅包含图标的按钮需要设置此属性才能与屏幕阅读器一起使用。
该名称应简短,并且与小部件传达的视觉信息等效。此属性必须本地化。默认情况下,此属性包含一个空字符串。
访问函数:
QString accessibleName() const
void setAccessibleName(const QString &name)
另请参见QWidget :: accessibleDescription和QAccessibleInterface :: text()。
void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)
如果on为true,则在此小部件上设置attribute属性;否则为false。否则清除属性。
另请参见testAttribute()。
autoFillBackground : bool
此属性保存是否自动填充窗口小部件背景如果启用,此属性将导致Qt在调用paint事件之前填充窗口小部件的背景。
使用的颜色由小部件调色板中的QPalette :: Window颜色角色定义。此外,除非设置了WA_OpaquePaintEvent或WA_NoSystemBackground属性,否则Windows始终会用QPalette :: Window填充。如果小部件的父级对其背景具有静态渐变,则无法关闭此属性(即,将其设置为false)。
警告:请谨慎使用此属性和Qt样式表。当窗口小部件的样式表具有有效的背景或边框图像时,将自动禁用此属性。默认情况下,此属性为false。
此属性在Qt 4.1中引入。
访问函数:
bool autoFillBackground() const
void setAutoFillBackground(bool enabled)

另请参见Qt :: WA_OpaquePaintEvent,Qt :: WA_NoSystemBackground,以及透明和双缓冲。
void QWidget::setBackgroundRole(QPalette::ColorRole role)
将窗口小部件的后台角色设置为角色。背景角色从小部件的调色板中定义用于渲染背景的画笔。
如果角色为QPalette :: NoRole,则该小部件继承其父级的后台角色。请注意,样式可以从调色板中自由选择任何颜色。
如果无法通过setBackgroundRole()获得所需的结果,则可以修改调色板或设置样式表。
另请参见backgroundRole()和foregroundRole()。
baseSize : QSize
此属性保存小部件的基本大小。如果小部件定义sizeIncrement(),则基本大小用于计算适当的小部件大小。
默认情况下,对于新创建的小部件,此属性包含一个宽度和高度为零的大小。
访问函数:
QSize baseSize() const
void setBaseSize(const QSize &)
void setBaseSize(int basew, int baseh)

另请参见setSizeIncrement()。
void QWidget::setBaseSize(int basew, int baseh)
这是一个重载函数。这对应于setBaseSize(QSize(basew,baseh))。将小部件的基本大小设置为width basew和height baseh。注意:属性baseSize的Setter函数。
void QWidget::setContentsMargins(int left, int top, int right, int bottom)
将窗口小部件内容周围的边距设置为左侧,顶部,右侧和底部。边距由布局系统使用,并且可由子类用于指定要绘制的区域(例如,不包括框架)。更改边距将触发resizeEvent()。
另请参见contentsRect()和contentsMargins()。
void QWidget::setContentsMargins(const QMargins &margins)
这是一个重载函数。 setContentsMargins函数设置小部件内容周围的边距。将窗口小部件内容周围的边距设置为具有由边距确定的大小。
边距由布局系统使用,并且可由子类用于指定要绘制的区域(例如,不包括框架)。更改边距将触发resizeEvent()。
此功能在Qt 4.6中引入。
另请参见contentsRect()和contentsMargins()。
contextMenuPolicy : Qt::ContextMenuPolicy
窗口小部件如何显示上下文菜单。此属性的默认值为Qt :: DefaultContextMenu,这意味着将调用contextMenuEvent()处理函数。
其他值是Qt :: NoContextMenu,Qt :: PreventContextMenu,Qt :: ActionsContextMenu和Qt :: CustomContextMenu。使用Qt :: CustomContextMenu,将发出信号customContextMenuRequested()。
访问函数:Qt :: ContextMenuPolicy contextMenuPolicy()const void setContextMenuPolicy(Qt :: ContextMenuPolicy policy)
另请参见contextMenuEvent(),customContextMenuRequested()和actions()。
cursor : QCursor
此属性保存此小部件的光标形状鼠标光标悬停在此小部件上时将采用此形状。有关一系列有用形状的信息,请参见预定义光标对象的列表。编辑器小部件可能使用I型光标:

如果未设置游标,或者在调用unsetCursor()之后,将使用父级的游标。默认情况下,此属性包含具有Qt :: ArrowCursor形状的光标。
如果鼠标离开小部件,即使鼠标被抓住,某些基础窗口实现也会重置游标。
如果要为所有窗口小部件设置光标,即使在窗口外,也可以考虑QGuiApplication :: setOverrideCursor()。
访问函数:
QCursor cursor() const
void setCursor(const QCursor &)
void unsetCursor()
另请参见QGuiApplication :: setOverrideCursor()。
void QWidget::setEditFocus(bool enable)
如果enable为true,则使该窗口小部件具有编辑焦点,在这种情况下,Qt :: Key_Up和Qt :: Key_Down将正常传递到该窗口小部件;否则,使用Qt :: Key_Up和Qt :: Key_Down更改焦点。
此功能仅在Qt for Embedded Linux中可用。
另请参见hasEditFocus()和QApplication :: navigationMode()。
void QWidget::setFixedSize(const QSize &s)
将窗口小部件的最小和最大大小都设置为s,从而防止窗口小部件增大或缩小。这将覆盖QLayout设置的默认大小限制。
要删除约束,请将大小设置为QWIDGETSIZE_MAX。另外,如果您希望窗口小部件根据其内容具有固定的大小,则可以调用QLayout :: setSizeConstraint(QLayout :: SetFixedSize);
另请参见maximumSize和minimumSize。
void QWidget::setFixedSize(int w, int h)
这是一个重载函数。将小部件的宽度设置为w,将高度设置为h。
void QWidget::setFixedWidth(int w)
将窗口小部件的最小和最大宽度都设置为w而不更改高度。提供方便。
另请参见sizeHint(),minimumSize(),maximumSize()和setFixedSize()。
void QWidget::setFocus(Qt::FocusReason reason)
如果此窗口小部件或其父项之一是活动窗口,则将键盘输入焦点赋予该窗口小部件(或其焦点代理)。
原因参数将传递到此函数发送的任何焦点事件中,用于解释导致窗口小部件获得焦点的原因。
如果窗口不处于活动状态,则当窗口变为活动状态时,将为小部件提供焦点。首先,将要更改的焦点事件发送到焦点小部件(如果有),以告知它即将失去焦点。然后更改焦点,将焦点移出事件发送到上一个焦点项目,将焦点移入事件发送到新项目,以告诉它它刚刚收到了焦点。 (如果焦点移入和焦点移出小部件相同,则不会发生任何事情。)
注意:在嵌入式平台上,setFocus()不会导致输入法由输入法打开。如果您希望这种情况发生,则必须自己将QEvent :: RequestSoftwareInputPanel事件发送给小部件。 setFocus()赋予窗口小部件以焦点,而不管其焦点策略如何,但不会清除任何键盘抓取(请参阅grabKeyboard())。
请注意,如果该小部件是隐藏的,则在显示之前将不接受焦点。
警告:如果您在本身可以从focusOutEvent()或focusInEvent()调用的函数中调用setFocus(),则可能会得到无限递归。
另请参见hasFocus(),clearFocus(),focusInEvent(),focusOutEvent(),setFocusPolicy(),focusWidget(),QApplication :: focusWidget(),grabKeyboard(),grabMouse(),小部件中的键盘焦点和QEvent :: RequestSoftwareInputPanel。
void QWidget::setFocusProxy(QWidget *w)
将小部件的焦点代理设置为小部件w。
如果w为nullptr,则函数会将此窗口小部件重置为没有焦点代理。某些小部件可以“具有焦点”,但是会创建子小部件(例如QLineEdit)来实际处理焦点。
在这种情况下,小部件可以将行编辑设置为其焦点代理。 setFocusProxy()设置在“此小部件”获得焦点时实际上将获得焦点的小部件。
如果存在焦点代理,则setFocus()和hasFocus()在焦点代理上运行。
另请参见focusProxy()。
void QWidget::setForegroundRole(QPalette::ColorRole role)
将小部件的前台角色设置为角色。前景角色从小部件的调色板定义用于绘制前景的颜色。如果角色是QPalette :: NoRole,则该小部件使用与背景角色形成对比的前景角色。
请注意,样式可以从调色板中自由选择任何颜色。如果无法通过setForegroundRole()获得所需的结果,则可以修改调色板或设置样式表。
另请参见fronterRole()和backgroundRole()。
geometry : QRect
此属性保存窗口小部件相对于其父窗口的几何形状,但不包括窗口框架。更改几何时,窗口小部件(如果可见)立即接收到移动事件(moveEvent())和/或调整大小事件(resizeEvent())。
如果窗口小部件当前不可见,则可以确保在显示窗口小部件之前先接收适当的事件。如果大小分量超出由minimumSize()和maximumSize()定义的范围,则将对其进行调整。
警告:在resizeEvent()或moveEvent()中调用setGeometry()可能导致无限递归。有关Windows几何问题的概述,请参见“窗口几何”文档。
默认情况下,此属性包含一个取决于用户平台和屏幕几何形状的值。
访问函数:
const QRect & geometry() const
void setGeometry(int x, int y, int w, int h)

void setGeometry(const QRect &)
另请参见frameGeometry(),rect(),move(),resize(), moveEvent(),resizeEvent(),minimumSize()和maximumSize()。
void QWidget::setGeometry(int x, int y, int w, int h)
这是一个重载函数。这对应于setGeometry(QRect(x,y,w,h))。注意:属性几何的设置器功能。
void QWidget::setGraphicsEffect(QGraphicsEffect *effect)
setGraphicsEffect函数用于设置小部件的图形效果。将效果设置为小部件的效果。
如果此小部件上已经安装了效果,则QWidget将在安装新效果之前删除现有效果。
如果effect是在其他窗口小部件上安装的效果,则setGraphicsEffect()将从该窗口小部件中删除效果并将其安装在此窗口小部件上。 QWidget拥有所有权。注意:此功能会将效果应用于自身及其所有子代。
注意:基于OpenGL的小部件(例如QGLWidget,QOpenGLWidget和QQuickWidget)不支持图形效果。此功能在Qt 4.6中引入。
另请参见graphicsEffect()。
void QWidget::setLayout(QLayout *layout)
将此窗口小部件的布局管理器设置为布局。如果此窗口小部件上已经安装了布局管理器,则QWidget将不允许您安装另一个。必须先删除现有的布局管理器(由layout()返回),然后才能使用新布局调用setLayout()。
如果layout是其他窗口小部件上的布局管理器,则setLayout()将重设该布局并使之成为该窗口小部件的布局管理器。例:

调用此函数的另一种方法是将此小部件传递给布局的构造函数。 QWidget将获得布局的所有权。
另请参见layout()和Layout Management。
void QWidget::setMask(const QBitmap &bitmap)
仅使小部件的位图具有对应的1位的像素可见。如果该区域包括小部件的rect()外部的像素,则取决于平台,该区域中的窗口系统控件可能不可见。
请注意,如果区域特别复杂,此效果可能会很慢。
以下代码显示了如何使用具有Alpha通道的图像来生成小部件的蒙版:

该代码显示的标签会使用其中包含的图像进行遮罩,从而使不规则形状的图像直接绘制到屏幕上。蒙版小部件仅在其可见部分接收鼠标事件。
另请参见mask(),clearMask(),windowOpacity()和Shaped Clock示例。
void QWidget::setMask(const QRegion &region)
这是一个重载函数。仅使窗口小部件的重叠区域部分可见。
如果该区域包括小部件的rect()外部的像素,则取决于平台,该区域中的窗口系统控件可能不可见。
请注意,如果区域特别复杂,此效果可能会很慢。
另请参见windowOpacity。
toolTip : QString
此属性包含窗口小部件的工具提示。请注意,默认情况下,仅针对活动窗口的子窗口小部件显示工具提示。您可以通过在窗口上而不是在带有工具提示的小部件上设置属性Qt :: WA_AlwaysShowToolTips来更改此行为。
如果要控制工具提示的行为,则可以拦截event()函数并捕获QEvent :: ToolTip事件(例如,如果要自定义应显示工具提示的区域)。
默认情况下,此属性包含一个空字符串。
访问函数:
QString toolTip() const
void setToolTip(const QString &)
另请参见QToolTip,statusTip和whatsThis。
toolTipDuration : int
此属性保存窗口小部件的工具提示持续时间,以毫秒为单位指定工具提示的显示时间。
如果该值为-1(默认值),则根据工具提示的长度来计算持续时间。
此属性在Qt 5.2中引入。
访问函数:
int toolTipDuration() const
void setToolTipDuration(int msec)
另请参见toolTip。
whatsThis : QString
此属性保存小部件的“这是什么”帮助文本。默认情况下,此属性包含一个空字符串。
访问函数:
QString whatsThis() const
void setWhatsThis(const QString &)

另请参见QWhatsThis,QWidget :: toolTip和QWidget :: statusTip。
windowFilePath : QString
此属性保存与小部件关联的文件路径。
此属性仅对Windows有意义。它将文件路径与窗口关联。如果设置了文件路径,但尚未设置窗口标题,则Qt会将窗口标题设置为使用QFileInfo :: fileName()获得的指定路径的文件名。
如果在任何时候设置了窗口标题,则窗口标题优先,并且将显示而不是文件路径字符串。此外,在macOS上,这样做还有一个好处,即假设文件路径存在,它将为窗口设置代理图标。
如果未设置文件路径,则此属性包含一个空字符串。默认情况下,此属性包含一个空字符串。
此属性在Qt 4.4中引入。
访问函数:
QString windowFilePath() const
void setWindowFilePath(const QString &filePath)
另请参见windowTitle和windowIcon。
windowFlags : Qt::WindowFlags
窗口标志是一种类型(例如Qt :: Dialog)和零个或多个窗口系统提示(例如Qt :: FramelessWindowHint)的组合。
如果窗口小部件的类型为Qt :: Widget或Qt :: SubWindow并成为窗口(Qt :: Window,Qt :: Dialog等),则将其放置在桌面上的位置(0,0)。
如果窗口小部件是一个窗口并变为Qt :: Widget或Qt :: SubWindow,则将其放置在相对于其父窗口小部件的位置(0,0)。
注意:更改窗口的标志时,此函数将调用setParent(),从而使小部件被隐藏。您必须调用show()使小部件再次可见。
访问函数:
Qt::WindowFlags windowFlags() const
void setWindowFlags(Qt::WindowFlags type)
另请参见windowType(),setWindowFlag()和Window Flags示例。
windowIcon : QIcon
此属性包含窗口小部件的图标。此属性仅对Windows有意义。
如果未设置任何图标,则windowIcon()返回应用程序图标(QApplication :: windowIcon())。
注意:在macOS上,窗口图标代表活动文档,除非使用setFilePath设置了文件路径,否则将不会显示窗口图标。
访问函数:
QIcon windowIcon() const
void setWindowIcon(const QIcon &icon)
通知程序信号:

void windowIconChanged(const QIcon &icon)

另请参见windowTitle和setFilePath。
windowModality : Qt::WindowModality
该属性保存哪些窗口被模式窗口小部件阻止。此属性仅对窗口有意义。模态窗口小部件可防止其他窗口中的窗口小部件获得输入。该属性的值控制在小部件可见时哪些窗口被阻止。
在窗口可见时更改此属性无效;您必须先隐藏()小部件,然后再次显示()。
默认情况下,此属性为Qt :: NonModal。
此属性在Qt 4.1中引入。
访问函数:
Qt::WindowModality windowModality() const
void setWindowModality(Qt::WindowModality windowModality)
另请参见isWindow(),QWidget :: modal和QDialog。
windowOpacity : double
此属性保存窗口的不透明度。
不透明度的有效范围是1.0(完全不透明)到0.0(完全透明)。默认情况下,此属性的值为1.0。在支持Composite扩展的Embedded Linux,macOS,Windows和X11平台上可以使用此功能。
注意:在X11上,您需要运行一个复合管理器,并且所使用的窗口管理器需要X11特定的_NET_WM_WINDOW_OPACITY原子。
警告:将此属性从不透明更改为透明可能会导致绘制事件,需要正确处理窗口才能正确显示窗口。这主要影响QPixmap :: grabWindow()的使用。
另请注意,半透明窗口的更新和调整大小比不透明窗口要慢得多。
访问函数:
qreal windowOpacity() const
void setWindowOpacity(qreal level)
另请参见setMask()。
QString QWidget::windowRole() const
返回窗口的角色或空字符串。
另请参见setWindowRole(),windowIcon和windowTitle。
Qt::WindowType QWidget::windowType() const
返回此窗口小部件的窗口类型。这与windowFlags()和Qt :: WindowType_Mask相同。
另请参见windowFlags。
x : const int
此属性保存窗口小部件相对于其父窗口(包括任何窗口框架)的x坐标。有关窗口的几何问题的概述,请参见“窗口几何”文档。
默认情况下,此属性的值为0。
访问函数:
int x() const
另请参见frameGeometry,y和pos。
y : const int
此属性保存窗口小部件相对于其父窗口的y坐标,包括所有窗口框架。有关窗口的几何问题的概述,请参见“窗口几何”文档。
默认情况下,此属性的值为0。
访问函数:
int y() const
另请参见frameGeometry,x和pos。

QTextEdit 类
Detailed Description – 内容描述
Introduction and Concepts – 介绍和概念
QTextEdit是一种高级WYSIWYG查看器/编辑器,支持使用HTML样式的标记或Markdown格式的富文本格式。 它经过优化,可处理大型文档并快速响应用户输入。
QTextEdit适用于段落和字符。 段落是经过格式化的字符串,将其自动换行以适合窗口小部件的宽度。 默认情况下,阅读纯文本时,一个换行符表示一个段落。 一个文档包含零个或多个段落。 段落中的单词根据段落的对齐方式对齐。 段落之间用强行换行符分隔。 段落中的每个字符都有其自己的属性,例如字体和颜色。
QTextEdit可以显示图像,列表和表格。 如果文本太大而无法在文本编辑的视口中查看,则会出现滚动条。 文本编辑可以加载纯文本文件和富文本文件。 富文本可以使用HTML 4标记的子集来描述; 有关更多信息,请参考“支持的HTML子集”页面。
如果只需要显示一小段富文本,请使用QLabel。
Qt中的富文本格式支持旨在提供一种快速,便携式和高效的方法,以向应用程序添加合理的联机帮助功能,并为富文本编辑器提供基础。 如果您发现HTML支持不足以满足您的需求,则可以考虑使用Qt WebKit,它提供了功能齐全的Web浏览器小部件。

默认情况下,QTextEdit上鼠标光标的形状为Qt :: IBeamCursor。 可以通过viewport()的cursor属性进行更改。
Using QTextEdit as a Display Widget — 使用QTextEdit作为显示小部件
QTextEdit可以显示大的HTML子集,包括表格和图像。
可以使用setHtml()设置或替换文本,该函数将删除任何现有文本并将其替换为setHtml()调用中传递的文本。 如果使用旧版HTML调用setHtml(),然后调用toHtml(),则返回的文本可能具有不同的标记,但将呈现相同的标记。 可以使用clear()删除整个文本。
也可以使用setMarkdown()设置或替换文本,但同样要注意:如果您随后调用toMarkdown(),则返回的文本可能会有所不同,但含义要尽可能保留。 可以解析带有某些嵌入式HTML的Markdown,但具有setHtml()相同的限制; 但是toMarkdown()仅写入“纯” Markdown,而没有任何嵌入式HTML。
可以使用QTextCursor类或便利函数insertHtml(),insertPlainText(),append()或paste()插入文本本身。 QTextCursor还能够将复杂的对象(如表格或列表)插入文档中,并处理创建选择并将更改应用于选定的文本。
默认情况下,文本编辑将单词包装在空白处以适合文本编辑小部件。 setLineWrapMode()函数用于指定所需的换行类型,如果不希望任何换行,则指定NoWrap。 调用setLineWrapMode()设置固定像素宽度FixedPixelWidth或字符集(例如80列)FixedColumnWidth以及使用setLineWrapColumnOrWidth()指定的像素或列。 如果使用自动换行到窗口小部件的宽度WidgetWidth,则可以使用setWordWrapMode()指定是在空白还是在任何地方断开。
find()函数可用于查找和选择文本中的给定字符串。

如果要限制QTextEdit中的段落总数,例如在日志查看器中通常很有用,则可以为此使用QTextDocument的maximumBlockCount属性。
Read-only Key Bindings — 只读键绑定
使用QTextEdit只读时,按键绑定仅限于导航,并且只能使用鼠标选择文本:
Keypresses Action
UP 向上移动一行。
Down 向下移动一行。
Left 向左移动一个字符。
Right 向右移动一个字符。
PageUp 向上移动一页(视口)。
PageDown 向下移动一页(视口)。
Home 移动到文本的开始。
Alt+Wheel 水平滚动页面(滚轮是鼠标滚轮)。
Ctrl+Wheel 缩放文本。
Ctrl+A 选择所有文本。
文本编辑可能能够提供一些元信息。 例如,documentTitle()函数将从HTML 标记内返回文本。<br /> 注意:仅当font-size未设置为固定大小时,才放大HTML文档。</p> <p>Using QTextEdit as an Editor — 使用QTextEdit作为编辑器<br /> 有关将QTextEdit用作显示窗口小部件的所有信息也适用于此。<br /> 当前char格式的属性通过setFontItalic(),setFontWeight(),setFontUnderline(),setFontFamily(),setFontPointSize(),setTextColor()和setCurrentFont()进行设置。 当前段落的对齐方式通过setAlignment()设置。<br /> 文本的选择由QTextCursor类处理,该类提供了用于创建选择,检索文本内容或删除选择的功能。 您可以使用textCursor()方法检索与用户可见的光标对应的对象。 如果要在QTextEdit中设置选择,只需在QTextCursor对象上创建一个选择,然后使用setTextCursor()使该光标成为可见光标。 可以使用copy()将所选内容复制到剪贴板,或使用cut()剪切到剪贴板。 可以使用selectAll()选择整个文本。</p> <p>当光标移动并且基础格式属性更改时,会发出currentCharFormatChanged()信号以在新光标位置反映新属性。</p> <p>每当文本更改时(由于setText()或通过编辑器本身),都会发出textChanged()信号。</p> <p>QTextEdit包含一个QTextDocument对象,可以使用document()方法检索该对象。 您也可以使用setDocument()设置自己的文档对象。<br /> QTextDocument提供了一个isModified()函数,如果自加载文本以来或自上次以false作为参数调用setModified以来对文本进行了修改,则它将返回true。 另外,它提供了撤消和重做的方法。</p> <p>Drag and Drop — 拖放<br /> QTextEdit还支持自定义拖放行为。 默认情况下,当用户将这些MIME类型的数据拖放到文档上时,QTextEdit将插入纯文本,HTML和富文本格式。 重新实现canInsertFromMimeData()和insertFromMimeData()以添加对其他MIME类型的支持。<br /> 例如,要允许用户将图像拖放到QTextEdit上,可以通过以下方式实现这些功能:</p> <p>我们通过返回true添加对图像MIME类型的支持。 对于所有其他MIME类型,我们使用默认实现。</p> <p>我们从MIME源保存的QVariant中解压缩图像,并将其作为资源插入文档中。</p> <p>Editing Key Bindings — 编辑按键绑定<br /> 为编辑而实现的键绑定列表:</p> <p>Keypresses Action<br /> Backspace 删除光标左边的字符。<br /> Delete 删除光标右边的字符。<br /> Ctrl+C 将选定的文本复制到剪贴板。<br /> Ctrl+Insert 将选定的文本复制到剪贴板。<br /> Ctrl+K 删除到行尾。<br /> Ctrl+V 将剪贴板文本粘贴到文本编辑中。<br /> Shift+Insert 剪贴板文本粘贴到文本编辑中。<br /> Ctrl+X 删除选定的文本并将其复制到剪贴板。<br /> Shift+Delete 删除选定的文本并将其复制到剪贴板。<br /> Ctrl+Z 重做上一个操作。<br /> Ctrl+Y 重做上一个操作。<br /> Left 移动光标向左一个字符。<br /> Ctrl+Left 将光标向左移动一个单词。<br /> Right 将光标向右移动一个字符。<br /> Ctrl+Right 将光标向右移动一个单词。<br /> Up 将光标向上移动一行。<br /> Down 将光标向下移动一行。<br /> PageUp 将光标向上移动一页。<br /> PageDown 将光标向下移动一页。<br /> Home 将光标移动到行的开头。<br /> Ctrl+Home 将光标移动到文本的开头。<br /> End 将光标移动到行尾。<br /> Ctrl+End 将光标移动到文本的末尾。<br /> Alt+Wheel 水平滚动页面(滚轮是鼠标滚轮)。<br /> 要选择(标记)文本,请在按住Shift键的同时按下移动键之一,例如Shift + Right将选择右侧的字符,而Shift + Ctrl + Right将选择右侧的单词,依此类推。<br /> 另请参见QTextDocument,QTextCursor,应用示例,语法突出显示示例和RTF处理。</p> <p>Prpperties – 属性<br /> acceptRichText : bool<br /> 此属性保存文本编辑是否接受用户的富文本插入<br /> 当此属性设置为false时,文本编辑将仅接受来自用户的纯文本输入。 例如通过剪贴板或拖放。<br /> 此属性的默认值为true。<br /> 此属性在Qt 4.1中引入。<br /> 访问函数:<br /> bool acceptRichText() const<br /> void setAcceptRichText(bool accept)</p> <p>autoFormatting : AutoFormatting<br /> 此属性包含已启用的一组自动格式设置功能<br /> 该值可以是AutoFormattingFlag枚举中值的任何组合。 默认值为自动无。 选择“自动全部”以启用所有自动格式化。<br /> 当前,唯一提供的自动格式设置功能是AutoBulletList。 Qt的未来版本可能会提供更多功能。<br /> 访问函数:<br /> QtextEdit::AutoFormatting autoFormatting() const<br /> void setAutoFormatting(QtextEdit::AutoFormatting features)</p> <p>cursorWidth : int<br /> 此属性指定光标的宽度(以像素为单位)。 预设值是1。<br /> 此属性在Qt 4.2中引入。<br /> 访问函数:<br /> int cursorWidth() const<br /> void setCursorWidth(int width)</p> <p>document : QTextDocument*<br /> 此属性保存文本编辑器的基础文档。<br /> 注意:除非它是文档的父对象,否则编辑器不会拥有该文档的所有权。 提供的文档的父对象仍然是该对象的所有者。 如果先前分配的文档是编辑器的子级,则将其删除。<br /> 访问功能:<br /> QtextDocument * document() const<br /> void setDocument(QtextDocument * document)</p> <p>documentTitle : QString<br /> 此属性保存从文本解析的文档的标题。<br /> 默认情况下,对于新创建的空文档,此属性包含一个空字符串。<br /> 访问函数:<br /> QString documentTitle() const<br /> void setDocumentTitle(const QString & title)</p> <p>html : QString<br /> 此属性为文本编辑的文本提供HTML界面。</p> <p>toHtml()以html形式返回文本编辑的文本。</p> <p>setHtml()更改文本编辑的文本。 删除所有先前的文本,并清除撤消/重做历史记录。 输入的文本被解释为html格式的富文本。 除非textCursor()已经在文档的开头,否则currentCharFormat()也会被重置。</p> <p>注意:在创建包含HTML的QString并将其传递给setHtml()时,调用者有责任确保正确解码文本。</p> <p>默认情况下,对于新创建的空文档,此属性包含用于描述没有正文文本的HTML 4.0文档的文本。<br /> 访问功能:<br /> QString toHtml() const<br /> void setHtml(const QString & text)<br /> 通知者信号:<br /> void textChanged()<br /> 另请参见受支持的HTML子集和plainText。</p> <p>lineWrapColumnOrWidth : int<br /> 此属性保存文本将被换行的位置(以像素或列为单位,具体取决于换行模式)<br /> 如果换行模式为FixedPixelWidth,则该值是从文本编辑的左边缘起应包裹文本的像素数。 如果换行模式为FixedColumnWidth,则该值是从文本编辑的左边缘起应被换行的列号(以字符列为单位)。<br /> 默认情况下,此属性的值为0。<br /> 访问功能:<br /> int lineWrapColumnOrWidth() const<br /> void setLineWrapColumnOrWidth(int w)<br /> 另请参见lineWrapMode。</p> <p>lineWrapMode : LineWrapMode<br /> 此属性保留换行模式<br /> 默认模式是WidgetWidth,它使单词被包裹在文本编辑的右边缘。 包装发生在空白处,使整个单词保持完整。 如果要在单词内进行换行,请使用setWordWrapMode()。 如果将固定模式设置为FixedPixelWidth或FixedColumnWidth,则还应使用所需宽度调用setLineWrapColumnOrWidth()。<br /> 访问功能:<br /> QtextEdit::LineWrapMode lineWrapMode() const<br /> void setLineWrapMode(QtextEdit::LineWrapMode mode)<br /> 另请参见lineWrapColumnOrWidth。</p> <p>markdown : QString<br /> 此属性为文本编辑的文本提供Markdown界面。</p> <p>toMarkdown()将文本编辑的文本作为“纯” Markdown返回,没有任何嵌入式HTML格式。 QTextDocument支持的某些功能(例如使用特定的颜色和命名的字体)无法用“纯” Markdown表示,因此将省略它们。<br /> setMarkdown()更改文本编辑的文本。 删除所有先前的文本,并清除撤消/重做历史记录。 输入文本被解释为Markdown格式的富文本。</p> <p>markdown字符串中包含的HTML的解析与setHtml中的处理相同; 但是,不支持HTML块内的Markdown格式。</p> <p>可以通过features参数启用或禁用解析器的某些功能:<br /> Constant 描述<br /> MarkdownNoHTML Markdown文本中的任何HTML标签都将被丢弃<br /> MarkdownDialectCommonMark 解析器仅支持CommonMark标准化的功能<br /> MarkdownDialectGitHub 解析器支持GitHub语法<br /> 默认值为MarkdownDialectGitHub。<br /> 访问函数:<br /> QString toMarkdowm(QtextDocument::MarkdownFeatures features = QtextDocument::MarkdownDialectGitHub) const<br /> void setMarkdown(const QString & markdown)</p> <p>overwriteMode : bool<br /> 此属性保存用户输入的文本是否将覆盖现有文本<br /> 与许多文本编辑器一样,文本编辑器小部件可以配置为使用用户输入的新文本来插入或覆盖现有文本。<br /> 如果此属性为true,则现有文本将被新文本按字符替换; 否则,将文本插入光标位置,替换现有文本。<br /> 默认情况下,此属性为false(新文本不会覆盖现有文本)。<br /> 此属性在Qt 4.1中引入。<br /> 访问函数:<br /> bool overwriteMode() const<br /> void setOverwriteMode(bool overwrite)</p> <p>placeholderText : QString<br /> 此属性保存编辑器占位符文本<br /> 设置此属性会使编辑器在document()为空的情况下显示灰色的占位符文本。<br /> 默认情况下,此属性包含一个空字符串。<br /> 此属性在Qt 5.2中引入。<br /> 访问函数:<br /> QString placeholderText() const<br /> void setPlaceholderText(const QString & placeholderText)<br /> 另请参见document()。</p> <p>plainText : QString<br /> 此属性获取并将文本编辑器的内容设置为纯文本。 设置该属性后,先前的内容将被删除,撤消/重做历史记录将被重置。 除非textCursor()已经在文档的开头,否则currentCharFormat()也会被重置。<br /> 如果文本编辑具有其他内容类型,则在调用toPlainText()时不会将其替换为纯文本。 唯一的例外是不间断空间nbsp;,它将转换为标准空间。<br /> 默认情况下,对于没有内容的编辑器,此属性包含一个空字符串。<br /> 此属性在Qt 4.3中引入。<br /> 访问函数:<br /> QString toPlainText() const<br /> void setPlainText(const QString & text)<br /> 另请参见html。</p> <p>readOnly : bool<br /> 此属性保存文本编辑是否为只读<br /> 在只读文本编辑中,用户只能浏览文本并选择文本。 修改文本是不可能的。<br /> 此属性的默认值为false。<br /> 访问函数:<br /> bool isReadOnly() const<br /> void setReadOnly(bool ro)</p> <p>tabChangesFocus : bool<br /> 此属性保存Tab是否更改焦点还是被接受为输入<br /> 在某些情况下,文本编辑不应允许用户使用Tab键输入制表符或更改缩进,因为这会破坏焦点链。 默认为false。<br /> 访问功能:<br /> bool tabChangeFocus() const<br /> void setTabChangesFocus(cool b)</p> <p>tabStopDistance : qreal<br /> 此属性保存制表符停止距离(以像素为单位)<br /> 默认情况下,此属性包含80像素的值。<br /> 此属性在Qt 5.10中引入。<br /> 访问功能:<br /> qreal tabStopDistance() const<br /> void setTabStopDistance(qreal distance)</p> <p>textInteractionFlags : Qt::TextInteractionFlags<br /> 指定窗口小部件应如何与用户输入交互。<br /> 默认值取决于QTextEdit是只读的还是可编辑的,以及它是否是QTextBrowser。<br /> 此属性在Qt 4.2中引入。<br /> 访问函数:<br /> Qt::TextInteractionFlags textInteractionFlags() const<br /> void setTextInteractionFlags(Qt::TextInteractionFlags flags)</p> <p>undoRedoEnabled : bool<br /> 此属性保存是否启用撤消和重做<br /> 如果此属性为true,并且存在可以撤消(或重做)的操作,则用户只能撤消或重做操作。<br /> 访问函数:<br /> bool isUndoRedoEnabled() const<br /> void setUndoRedoEnabled(bool enable)</p> <p>wordWrapMode : QTextOption::WrapMode<br /> 此属性保留QTextEdit在按文字换行时将使用的模式<br /> 默认情况下,此属性设置为QTextOption :: WrapAtWordBoundaryOrAnywhere。<br /> 访问功能:<br /> QtextOption::WrapMode wordWrapMode() const<br /> void setWordWrapMode(QtextOption::WrapMode policy)<br /> 另请参见QTextOption :: WrapMode。</p> <p>Public Functions – 公共函数<br /> QTextEdit::QTextEdit(const QString &text, QWidget *parent = nullptr)<br /> 构造一个带有父parent的QTextEdit。 文本编辑将显示text。 文本被解释为html。<br /> QTextEdit::QTextEdit(QWidget *parent = nullptr)<br /> 构造一个带有父parent的空QTextEdit。</p> <p>QTextEdit::~QTextEdit()<br /> 析构函数。</p> <p>acceptRichText : bool<br /> 此属性保存文本编辑是否接受用户的富文本插入<br /> 当此属性设置为false时,文本编辑将仅接受来自用户的纯文本输入。 例如通过剪贴板或拖放。<br /> 此属性的默认值为true。<br /> 此属性在Qt 4.1中引入。<br /> 访问函数:<br /> bool acceptRichText() const<br /> void setAcceptRichText(bool accept)</p> <p>Qt::Alignment QTextEdit::alignment() const<br /> 返回当前段落的对齐方式。<br /> 另请参见setAlignment()。</p> <p>QString QTextEdit::anchorAt(const QPoint &pos) const<br /> 返回位置pos处锚点的引用,如果该点不存在锚,则返回一个空字符串。</p> <p>autoFormatting : AutoFormatting<br /> 此属性包含已启用的一组自动格式设置功能<br /> 该值可以是AutoFormattingFlag枚举中值的任何组合。 默认值为自动无。 选择“自动全部”以启用所有自动格式化。<br /> 当前,唯一提供的自动格式设置功能是AutoBulletList。 Qt的未来版本可能会提供更多功能。<br /> 访问函数:<br /> QtextEdit::AutoFormatting autoFormatting() const<br /> void setAutoFormatting(QtextEdit::AutoFormatting features)</p> <p>bool QTextEdit::canPaste() const<br /> 返回是否可以将文本从剪贴板粘贴到textedit中。<br /> 此功能在Qt 4.2中引入。</p> <p>QMenu *QTextEdit::createStandardContextMenu()<br /> 此功能创建标准上下文菜单,当用户使用鼠标右键单击文本编辑时将显示该菜单。 从默认的contextMenuEvent()处理函数中调用它。 弹出菜单的所有权已转移给调用者。<br /> 我们建议您改用createStandardContextMenu(QPoint)版本,该版本将启用对用户单击位置敏感的操作。</p> <p>QMenu *QTextEdit::createStandardContextMenu(const QPoint &position)<br /> 此功能创建标准上下文菜单,当用户使用鼠标右键单击文本编辑时将显示该菜单。 从默认的contextMenuEvent()处理函数中调用它,并采用鼠标单击所在的文档坐标中的位置。 这可以启用对用户单击位置敏感的动作。 弹出菜单的所有权已转移给调用者。<br /> 此功能在Qt 4.4中引入。</p> <p>QTextCharFormat QTextEdit::currentCharFormat() const<br /> 返回插入新文本时使用的char格式。<br /> 另请参见setCurrentCharFormat()。</p> <p>QFont QTextEdit::currentFont() const<br /> 返回当前格式的字体。<br /> 另请参见setCurrentFont(),setFontFamily()和setFontPointSize()。</p> <p>QTextCursor QTextEdit::cursorForPosition(const QPoint &pos) const<br /> 在位置pos(在视口坐标中)返回QTextCursor。</p> <p>QRect QTextEdit::cursorRect(const QTextCursor &cursor) const<br /> 返回一个包含cursor的矩形(在视口坐标中)。</p> <p>QRect QTextEdit::cursorRect() const<br /> 返回一个矩形(在视口坐标中),该矩形包括文本编辑的光标。</p> <p>cursorWidth : int<br /> 此属性指定光标的宽度(以像素为单位)。 预设值是1。<br /> 此属性在Qt 4.2中引入。<br /> 访问函数:<br /> int cursorWidth() const<br /> void setCursorWidth(int width)</p> <p>document : QTextDocument*<br /> 此属性保存文本编辑器的基础文档。<br /> 注意:除非它是文档的父对象,否则编辑器不会拥有该文档的所有权。 提供的文档的父对象仍然是该对象的所有者。 如果先前分配的文档是编辑器的子级,则将其删除。<br /> 访问功能:<br /> QtextDocument * document() const<br /> void setDocument(QtextDocument * document)</p> <p>documentTitle : QString<br /> 此属性保存从文本解析的文档的标题。<br /> 默认情况下,对于新创建的空文档,此属性包含一个空字符串。<br /> 访问函数:<br /> QString documentTitle() const<br /> void setDocumentTitle(const QString & title)</p> <p>void QTextEdit::ensureCursorVisible()<br /> 如有必要,可通过滚动文本编辑来确保光标可见。<br /> QList QTextEdit::extraSelections() const<br /> 返回先前设置的其他选择。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见setExtraSelections()。</p> <p>bool QTextEdit::find(const QString &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())<br /> 使用给定的options查找字符串的下一个匹配项exp。 如果找到exp,则返回true,并更改光标以选择匹配项;否则,返回true。 否则返回false。</p> <p>bool QTextEdit::find(const QRegExp &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())<br /> 这是一个过载函数。<br /> 使用给定的选项查找与正则表达式exp匹配的下一个匹配项。 对于此重载,将忽略QTextDocument :: FindCaseSensitively选项,而应使用QRegExp :: caseSensitivity。<br /> 如果找到匹配项,则返回true,并更改光标以选择匹配项;否则,返回true。 否则返回false。<br /> 此功能在Qt 5.3中引入。</p> <p>bool QTextEdit::find(const QRegularExpression &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())<br /> 这是一个过载函数。<br /> 使用给定的选项查找与正则表达式exp匹配的下一个匹配项。 对于此重载,将忽略QTextDocument :: FindCaseSensitively选项,而应使用QRegularExpression :: CaseInsensitiveOption。<br /> 如果找到匹配项,则返回true,并更改光标以选择匹配项;否则,返回true。 否则返回false。<br /> 此功能在Qt 5.13中引入。<br /> QString QTextEdit::fontFamily() const<br /> 返回当前格式的字体系列。<br /> 另请参见setFontFamily(),setCurrentFont()和setFontPointSize()。</p> <p>bool QTextEdit::fontItalic() const<br /> 如果当前格式的字体为斜体,则返回true;否则,返回true。 否则返回false。<br /> 另请参见setFontItalic()。</p> <p>qreal QTextEdit::fontPointSize() const<br /> 返回当前格式的字体的磅值。<br /> 另请参见setFontFamily(),setCurrentFont()和setFontPointSize()。</p> <p>bool QTextEdit::fontUnderline() const<br /> 如果当前格式的字体带下划线,则返回true;否则,返回true。 否则返回false。<br /> 另请参见setFontUnderline()。</p> <p>int QTextEdit::fontWeight() const<br /> 返回当前格式的字体粗细。<br /> 另请参见setFontWeight(),setCurrentFont(),setFontPointSize()和QFont :: Weight。</p> <p>readOnly : bool<br /> 此属性保存文本编辑是否为只读<br /> 在只读文本编辑中,用户只能浏览文本并选择文本。 修改文本是不可能的。<br /> 此属性的默认值为false。<br /> 访问函数:<br /> bool isReadOnly() const<br /> void setReadOnly(bool ro)</p> <p>undoRedoEnabled : bool<br /> 此属性保存是否启用撤消和重做<br /> 如果此属性为true,并且存在可以撤消(或重做)的操作,则用户只能撤消或重做操作。<br /> 访问函数:<br /> bool isUndoRedoEnabled() const<br /> void setUndoRedoEnabled(bool enable)</p> <p>lineWrapColumnOrWidth : int<br /> 此属性保存文本将被换行的位置(以像素或列为单位,具体取决于换行模式)<br /> 如果换行模式为FixedPixelWidth,则该值是从文本编辑的左边缘起应包裹文本的像素数。 如果换行模式为FixedColumnWidth,则该值是从文本编辑的左边缘起应被换行的列号(以字符列为单位)。<br /> 默认情况下,此属性的值为0。<br /> 访问功能:<br /> int lineWrapColumnOrWidth() const<br /> void setLineWrapColumnOrWidth(int w)<br /> 另请参见lineWrapMode。<br /> lineWrapMode : LineWrapMode<br /> 此属性保留换行模式<br /> 默认模式是WidgetWidth,它使单词被包裹在文本编辑的右边缘。 包装发生在空白处,使整个单词保持完整。 如果要在单词内进行换行,请使用setWordWrapMode()。 如果将固定模式设置为FixedPixelWidth或FixedColumnWidth,则还应使用所需宽度调用setLineWrapColumnOrWidth()。<br /> 访问功能:<br /> QtextEdit::LineWrapMode lineWrapMode() const<br /> void setLineWrapMode(QtextEdit::LineWrapMode mode)<br /> 另请参见lineWrapColumnOrWidth</p> <p>QVariant QTextEdit::loadResource(int type, const QUrl &name)<br /> 加载由给定类型和名称指定的资源。<br /> 该函数是QTextDocument :: loadResource()的扩展。<br /> 注意:可以通过元对象系统和QML调用此函数。 请参阅Q_INVOKABLE。<br /> 另请参见QTextDocument :: loadResource()。</p> <p>void QTextEdit::mergeCurrentCharFormat(const QTextCharFormat &modifier)<br /> 通过在编辑器的光标上调用QTextCursor :: mergeCharFormat,将修饰符中指定的属性合并为当前字符格式。 如果编辑器具有选择,则修饰符的属性将直接应用于选择。<br /> 另请参见QTextCursor :: mergeCharFormat()。</p> <p>void QTextEdit::moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor)<br /> 通过执行给定的操作来移动光标。<br /> 如果mode为QTextCursor :: KeepAnchor,则光标选择其移过的文本。 这与用户按住Shift键并使用光标键移动光标时获得的效果相同。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见QTextCursor :: movePosition()。</p> <p>overwriteMode : bool<br /> 此属性保存用户输入的文本是否将覆盖现有文本<br /> 与许多文本编辑器一样,文本编辑器小部件可以配置为使用用户输入的新文本来插入或覆盖现有文本。<br /> 如果此属性为true,则现有文本将被新文本按字符替换; 否则,将文本插入光标位置,替换现有文本。<br /> 默认情况下,此属性为false(新文本不会覆盖现有文本)。<br /> 此属性在Qt 4.1中引入。<br /> 访问函数:<br /> bool overwriteMode() const<br /> void setOverwriteMode(bool overwrite)</p> <p>placeholderText : QString<br /> 此属性保存编辑器占位符文本<br /> 设置此属性会使编辑器在document()为空的情况下显示灰色的占位符文本。<br /> 默认情况下,此属性包含一个空字符串。<br /> 此属性在Qt 5.2中引入。<br /> 访问函数:<br /> QString placeholderText() const<br /> void setPlaceholderText(const QString & placeholderText)<br /> 另请参见document()。</p> <p>void QTextEdit::print(QPagedPaintDevice *printer) const<br /> 便捷功能,可将文本编辑的文档打印到给定的打印机上。 这等效于直接在文档上调用print方法,除了此函数还支持QPrinter :: Selection作为打印范围。<br /> 此功能在Qt 4.3中引入。<br /> 另请参见QTextDocument :: print()。</p> <p>acceptRichText : bool<br /> 此属性保存文本编辑是否接受用户的富文本插入<br /> 当此属性设置为false时,文本编辑将仅接受来自用户的纯文本输入。 例如通过剪贴板或拖放。<br /> 此属性的默认值为true。<br /> 此属性在Qt 4.1中引入。<br /> 访问函数:<br /> bool acceptRichText() const<br /> void setAcceptRichText(bool accept)</p> <p>void QTextEdit::setCurrentCharFormat(const QTextCharFormat &format)<br /> 通过在编辑器的光标上调用QTextCursor :: setCharFormat()来设置在插入新文本以设置格式时使用的char格式。 如果编辑器具有选择,则将char格式直接应用于选择。<br /> 另请参见currentCharFormat()。</p> <p>cursorWidth : int<br /> 此属性指定光标的宽度(以像素为单位)。 预设值是1。<br /> 此属性在Qt 4.2中引入。<br /> 访问函数:<br /> int cursorWidth() const<br /> void setCursorWidth(int width)</p> <p>void QTextEdit::setExtraSelections(const QList &selections)<br /> 此功能允许使用给定的颜色临时标记文档中的某些区域,指定为选择区域。 例如,在编程编辑器中用给定的背景色标记整行文本以指示断点的存在,这可能很有用。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见QTextEdit :: ExtraSelection和extraSelections()。</p> <p>tabStopDistance : qreal<br /> 此属性保存制表符停止距离(以像素为单位)<br /> 默认情况下,此属性包含80像素的值。<br /> 此属性在Qt 5.10中引入。<br /> 访问功能:<br /> qreal tabStopDistance() const<br /> void setTabStopDistance(qreal distance)</p> <p>tabChangesFocus : bool<br /> 此属性保存Tab是否更改焦点还是被接受为输入<br /> 在某些情况下,文本编辑不应允许用户使用Tab键输入制表符或更改缩进,因为这会破坏焦点链。 默认为false。<br /> 访问功能:<br /> bool tabChangeFocus() const<br /> void setTabChangesFocus(cool b)</p> <p>void QTextEdit::setTextCursor(const QTextCursor &cursor)<br /> 设置可见光标。<br /> 另请参见textCursor()。</p> <p>textInteractionFlags : Qt::TextInteractionFlags<br /> 指定窗口小部件应如何与用户输入交互。<br /> 默认值取决于QTextEdit是只读的还是可编辑的,以及它是否是QTextBrowser。<br /> 此属性在Qt 4.2中引入。<br /> 访问函数:<br /> Qt::TextInteractionFlags textInteractionFlags() const<br /> void setTextInteractionFlags(Qt::TextInteractionFlags flags)</p> <p>wordWrapMode : QTextOption::WrapMode<br /> 此属性保留QTextEdit在按文字换行时将使用的模式<br /> 默认情况下,此属性设置为QTextOption :: WrapAtWordBoundaryOrAnywhere。<br /> 访问功能:<br /> QtextOption::WrapMode wordWrapMode() const<br /> void setWordWrapMode(QtextOption::WrapMode policy)<br /> 另请参见QTextOption :: WrapMode。</p> <p>QColor QTextEdit::textBackgroundColor() const<br /> 返回当前格式的文本背景色。<br /> 此功能在Qt 4.4中引入。<br /> 另请参见setTextBackgroundColor()。</p> <p>QColor QTextEdit::textColor() const<br /> 返回当前格式的文本颜色。<br /> 另请参见setTextColor()。</p> <p>QTextCursor QTextEdit::textCursor() const<br /> 返回表示当前可见光标的QTextCursor的副本。 请注意,对返回的游标所做的更改不会影响QTextEdit的游标。 使用setTextCursor()更新可见光标。<br /> 另请参见setTextCursor()。</p> <p>html : QString<br /> 此属性为文本编辑的文本提供HTML界面。</p> <p>toHtml()以html形式返回文本编辑的文本。</p> <p>setHtml()更改文本编辑的文本。 删除所有先前的文本,并清除撤消/重做历史记录。 输入的文本被解释为html格式的富文本。 除非textCursor()已经在文档的开头,否则currentCharFormat()也会被重置。</p> <p>注意:在创建包含HTML的QString并将其传递给setHtml()时,调用者有责任确保正确解码文本。</p> <p>默认情况下,对于新创建的空文档,此属性包含用于描述没有正文文本的HTML 4.0文档的文本。<br /> 访问功能:<br /> QString toHtml() const<br /> void setHtml(const QString & text)<br /> 通知者信号:<br /> void textChanged()<br /> 另请参见受支持的HTML子集和plainText。</p> <p>markdown : QString<br /> 此属性为文本编辑的文本提供Markdown界面。</p> <p>toMarkdown()将文本编辑的文本作为“纯” Markdown返回,没有任何嵌入式HTML格式。 QTextDocument支持的某些功能(例如使用特定的颜色和命名的字体)无法用“纯” Markdown表示,因此将省略它们。<br /> setMarkdown()更改文本编辑的文本。 删除所有先前的文本,并清除撤消/重做历史记录。 输入文本被解释为Markdown格式的富文本。</p> <p>markdown字符串中包含的HTML的解析与setHtml中的处理相同; 但是,不支持HTML块内的Markdown格式。</p> <p>可以通过features参数启用或禁用解析器的某些功能:<br /> Constant 描述<br /> MarkdownNoHTML Markdown文本中的任何HTML标签都将被丢弃<br /> MarkdownDialectCommonMark 解析器仅支持CommonMark标准化的功能<br /> MarkdownDialectGitHub 解析器支持GitHub语法<br /> 默认值为MarkdownDialectGitHub。<br /> 访问函数:<br /> QString toMarkdowm(QtextDocument::MarkdownFeatures features = QtextDocument::MarkdownDialectGitHub) const<br /> void setMarkdown(const QString & markdown)</p> <p>QString QTextEdit::toPlainText() const<br /> QString QTextEdit :: toPlainText()常量<br /> 以纯文本形式返回文本编辑的文本。<br /> 注意:属性plainText的Getter函数。<br /> 另请参见QTextEdit :: setPlainText()。</p> <p>Public Slots – 公共插槽<br /> void QTextEdit::append(const QString &text)<br /> 将带有text的新段落追加到文本编辑的末尾。<br /> 注意:附加的新段落将具有与当前段落相同的字符格式和块格式,具体取决于光标的位置。<br /> 另请参见currentCharFormat()和QTextCursor :: blockFormat()。</p> <p>void QTextEdit::clear()<br /> 删除文本编辑中的所有文本。<br /> 注意:<br />  撤消/重做历史也被清除。<br />  除非textCursor()已在文档开头,否则将重置currentCharFormat()。<br /> 另请参见cut(),setPlainText()和setHtml()。</p> <p>void QTextEdit::copy()<br /> 将所有选定的文本复制到剪贴板。<br /> 另请参见copyAvailable()。</p> <p>void QTextEdit::cut()<br /> 将所选文本复制到剪贴板,然后将其从文本编辑中删除。<br /> 如果没有选定的文本,则不会发生任何事情。<br /> 另请参见copy()和paste()。</p> <p>void QTextEdit::insertHtml(const QString &text)<br /> 方便位置,可在当前光标位置插入假定为html格式的文本。<br /> 它等效于:</p> <p>注意:将此功能与样式表一起使用时,样式表将仅应用于文档中的当前块。 为了在整个文档中应用样式表,请改用QTextDocument :: setDefaultStyleSheet()。</p> <p>void QTextEdit::insertPlainText(const QString &text)<br /> 方便插槽,用于在当前光标位置插入文本。<br /> 相当于</p> <p>void QTextEdit::paste()<br /> 将剪贴板中的文本粘贴到当前光标位置的文本编辑中。<br /> 如果剪贴板中没有文本,则不会发生任何事情。<br /> 要更改此函数的行为,即修改QTextEdit可以粘贴的内容以及粘贴方式,请重新实现虚拟canInsertFromMimeData()和insertFromMimeData()函数。<br /> 另请参见cut()和copy()。</p> <p>void QTextEdit::redo()<br /> 重做上一个操作。<br /> 如果没有要重做的操作,即在撤消/重做历史中没有重做步骤,则什么也不会发生。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见undo()。</p> <p>void QTextEdit::scrollToAnchor(const QString &name)<br /> 滚动文本编辑,以便显示具有给定name的锚点; 如果name为空,已经可见或找不到,则不执行任何操作。</p> <p>void QTextEdit::selectAll()<br /> 选择所有文本。<br /> 另请参见copy(),cut()和textCursor()。</p> <p>void QTextEdit::setAlignment(Qt::Alignment a)<br /> 将当前段落的对齐方式设置为a。 有效的对齐方式为Qt :: AlignLeft,Qt :: AlignRight,Qt :: AlignJustify和Qt :: AlignCenter(水平居中)。<br /> 另请参见alignment()。</p> <p>void QTextEdit::setCurrentFont(const QFont &f)<br /> 将当前格式的字体设置为f。<br /> 另请参见currentFont(),setFontPointSize()和setFontFamily()。</p> <p>void QTextEdit::setFontFamily(const QString &fontFamily)<br /> 将当前格式的字体系列设置为fontFamily。<br /> 另请参见fontFamily()和setCurrentFont()。</p> <p>void QTextEdit::setFontItalic(bool italic)<br /> 如果italic为true,则将当前格式设置为斜体;否则为0。 否则将当前格式设置为非斜体。<br /> 另请参见fontItalic()。</p> <p>void QTextEdit::setFontPointSize(qreal s)<br /> 将当前格式的磅值设置为s。<br /> 注意,如果s为零或负,则此函数的行为未定义。<br /> 另请参见fontPointSize(),setCurrentFont()和setFontFamily()。</p> <p>void QTextEdit::setFontUnderline(bool underline)<br /> 如果underline为true,则将当前格式设置为下划线。 否则将当前格式设置为非下划线。<br /> 另请参见fontUnderne()。<br /> void QTextEdit::setFontWeight(int weight)<br /> 将当前格式的字体权重设置为给定的weight,其中使用的值在QFont :: Weight枚举定义的范围内。<br /> 另请参见fontWeight(),setCurrentFont()和setFontFamily()。</p> <p>html : QString<br /> 此属性为文本编辑的文本提供HTML界面。</p> <p>toHtml()以html形式返回文本编辑的文本。</p> <p>setHtml()更改文本编辑的文本。 删除所有先前的文本,并清除撤消/重做历史记录。 输入的文本被解释为html格式的富文本。 除非textCursor()已经在文档的开头,否则currentCharFormat()也会被重置。</p> <p>注意:在创建包含HTML的QString并将其传递给setHtml()时,调用者有责任确保正确解码文本。</p> <p>默认情况下,对于新创建的空文档,此属性包含用于描述没有正文文本的HTML 4.0文档的文本。<br /> 访问功能:<br /> QString toHtml() const<br /> void setHtml(const QString & text)<br /> 通知者信号:<br /> void textChanged()<br /> 另请参见受支持的HTML子集和plainText。</p> <p>markdown : QString<br /> 此属性为文本编辑的文本提供Markdown界面。</p> <p>toMarkdown()将文本编辑的文本作为“纯” Markdown返回,没有任何嵌入式HTML格式。 QTextDocument支持的某些功能(例如使用特定的颜色和命名的字体)无法用“纯” Markdown表示,因此将省略它们。<br /> setMarkdown()更改文本编辑的文本。 删除所有先前的文本,并清除撤消/重做历史记录。 输入文本被解释为Markdown格式的富文本。</p> <p>markdown字符串中包含的HTML的解析与setHtml中的处理相同; 但是,不支持HTML块内的Markdown格式。</p> <p>可以通过features参数启用或禁用解析器的某些功能:<br /> Constant 描述<br /> MarkdownNoHTML Markdown文本中的任何HTML标签都将被丢弃<br /> MarkdownDialectCommonMark 解析器仅支持CommonMark标准化的功能<br /> MarkdownDialectGitHub 解析器支持GitHub语法<br /> 默认值为MarkdownDialectGitHub。<br /> 访问函数:<br /> QString toMarkdowm(QtextDocument::MarkdownFeatures features = QtextDocument::MarkdownDialectGitHub) const<br /> void setMarkdown(const QString & markdown)</p> <p>void QTextEdit::setPlainText(const QString &text)<br /> 将文本编辑的文本更改为字符串文本。 之前的所有文字都将被删除。<br /> 注意:<br />  text被解释为纯文本。<br />  撤消/重做历史也被清除。<br />  除非textCursor()已在文档开头,否则将重置currentCharFormat()。<br /> 注意:属性plainText的Setter函数。<br /> 另请参见toPlainText()。<br /> void QTextEdit::setText(const QString &text)<br /> 设置文本编辑的text。 文本可以是纯文本或HTML,并且文本编辑将尝试猜测正确的格式。<br /> 直接使用setHtml()或setPlainText()可以避免文本编辑的猜测。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见toPlainText()和toHtml()。</p> <p>void QTextEdit::setTextBackgroundColor(const QColor &c)<br /> 将当前格式的文本背景色设置为c。<br /> 此功能在Qt 4.4中引入。<br /> 另请参见textBackgroundColor()。</p> <p>void QTextEdit::setTextColor(const QColor &c<br /> 将当前格式的文本颜色设置为c。<br /> 另请参见textColor()。</p> <p>void QTextEdit::undo()<br /> 撤消上一个操作。<br /> 如果没有撤消操作,即撤消/重做历史中没有撤消步骤,则不会发生任何事情。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见redo()。</p> <p>void QTextEdit::zoomIn(int range = 1)<br /> 通过扩大基本字体尺寸range点并将所有字体大小重新计算为新大小来放大文本。 这不会更改任何图像的大小。<br /> 另请参见zoomOut()。<br /> void QTextEdit::zoomOut(int range = 1)<br /> 通过缩小基本字体大小range点并将所有字体大小重新计算为新大小来缩小文本。 这不会更改任何图像的大小。<br /> 另请参见zoomIn()。</p> <p>Protected Functions – 保护函数<br /> bool QTextEdit::canInsertFromMimeData(const QMimeData *source) const<br /> 如果可以解码由source指定的MIME数据对象的内容并将其插入文档中,则此函数返回true。 例如,在拖动操作期间鼠标进入该小部件并且需要确定是否有可能接受拖放操作时,将调用此方法。<br /> 重新实现此功能以启用对其他MIME类型的拖放支持。</p> <p>QMimeData *QTextEdit::createMimeDataFromSelection() const<br /> 此函数返回一个新的MIME数据对象,以表示文本编辑的当前选择内容。 当选择需要封装到新的QMimeData对象中时,将调用此方法。 例如,当开始拖放操作或将数据复制到剪贴板时。<br /> 如果重新实现此功能,请注意,返回的QMimeData对象的所有权将传递给调用方。 可以通过使用textCursor()函数来检索选择。</p> <p>void QTextEdit::insertFromMimeData(const QMimeData *source)<br /> 此函数将由source指定的MIME数据对象的内容插入到当前光标位置的文本编辑中。 每当由于剪贴板粘贴操作而插入文本时,或者当文本编辑接受来自拖放操作的数据时,都会调用该方法。<br /> 重新实现此功能以启用对其他MIME类型的拖放支持。</p> </div> </article> <article itemscope itemtype="http://schema.org/Article" id="post-7895" class="post-7895 post type-post status-publish format-standard hentry category-qt"> <header class="entry-header"> <h2 class="entry-title" itemprop="name"> <a itemprop="url" href="http://wiki.xuetang9.com/?p=7895" title="链向QString 类(老九学堂C++会员友情翻译,不喜勿喷)的固定链接" rel="bookmark">QString 类(老九学堂C++会员友情翻译,不喜勿喷)</a> </h2> <div class="entry-meta"><span class="entry-date"><a href="http://wiki.xuetang9.com/?p=7895" rel="bookmark"><time class="entry-date published" datetime="2020-05-27T14:23:07+08:00" itemprop="datepublished">5月 27, 2020</time></a></span> by <span class="author vcard" itemscope itemprop="author" itemtype="http://schema.org/Person"><a class="url fn n" href="http://wiki.xuetang9.com/?author=2889" rel="author" itemprop="url"><span itemprop="name">arklis</span></a></span><span class="sep">·</span><span class="comments-link"><a href="http://wiki.xuetang9.com/?p=7895#respond" itemprop="discussionUrl">0评论</a></span></div> </header> <div class="entry-content" itemprop="articleBody"> <p>QString Class<br /> Detailed Description 详细说明<br /> QString存储一串16位QChars,其中每个QChar对应一个UTF-16代码单元。 (代码值大于65535的Unicode字符使用代理对,即两个连续的QChars存储。)<br /> Unicode是一个国际标准,支持当今使用的大多数书写系统。它是US-ASCII(ANSI X3.4-1986)和Latin-1(ISO 8859-1)的超集,并且所有US-ASCII / Latin-1字符都位于相同的代码位置。<br /> 在后台,QString使用隐式共享(写时复制)来减少内存使用并避免不必要的数据复制。这也有助于减少存储16位字符而不是8位字符的固有开销。<br /> 除了QString,Qt还提供了QByteArray类来存储原始字节和传统的以8位’\0’终止的字符串。QString可以实现您的大多数目的。它在整个Qt API中使用,并且Unicode支持可确保您希望在某个时候扩展应用程序市场时轻松地翻译您的应用程序。 QByteArray适用的两种主要情况是:您需要存储原始二进制数据时,以及内存保留至关重要时(例如在嵌入式系统中)。<br /> Initializing a String初始化字符串<br /> 初始化QString的一种方法是将const char *传递给其构造函数。例如,以下代码创建一个大小为5的QString,其中包含数据”Hello”:</p> <p>QString使用fromUtf8()函数将const char<em>数据转换为Unicode。<br /> 在所有使用const char</em>参数的QString函数中,const char<em>被解释为以UTF-8编码的经典C风格’\0’终止的字符串。 const char</em>参数为nullptr是合法的。<br /> 您还可以将字符串数据作为QChars数组提供:</p> <p>QString会对QChar数据进行深层复制,因此您以后可以修改它而不会出现副作用。 (如果出于性能原因,您不想获取字符数据的深层副本,请改用QString::fromRawData().)<br /> 另一种方法是使用resize()设置字符串的大小并初始化每个字符的数据字符。 QString使用基于0的索引,就像C ++数组一样。要访问特定索引位置的字符,可以使用operator<a href=""></a>。在非常量字符串上,operator<a href=""></a>返回对可在赋值左侧使用的字符的引用。<br /> 例如:</p> <p>对于只读访问,另一种语法是使用at()函数:</p> <p>at()函数可以比operator<a href=""></a>更快,因为它永远不会导致深度复制的发生。或者,使用left(),right()或mid()函数一次提取多个字符。<br /> QString可以嵌入’\0’字符(QChar::Null)。 size()函数始终返回整个字符串的大小,包括嵌入的’\0’字符。<br /> 调用resize()函数后,新分配的字符具有未定义的值。要将字符串中的所有字符设置为特定值,请使用fill()函数。<br /> QString提供了数十种旨在简化字符串使用的重载。例如,如果您想将QString与字符串文字进行比较,则可以编写如下代码,它将按预期工作:</p> <p>您还可以将字符串文字传递给以QString作为参数的函数,从而调用QString(const char *)构造函数。类似地,您可以使用qPrintable()宏将QString传递给采用const char *参数的函数,该宏将给定的QString作为const char *返回。这等效于调用 .toLocal8Bit().constData()<br /> Manipulating String Data处理字符串数据<br /> QString提供以下用于修改字符数据的基本功能:append(),prepend(),insert(),replace()和remove()。<br /> 例如:</p> <p>如果您正在逐步构建QString并提前知道QString将包含多少个字符,则可以调用reserve(),要求QString预分配一定数量的内存。您也可以调用Capacity()来找出QString实际分配了多少内存。<br /> replace()和remove()函数的前两个参数是开始擦除的位置以及应擦除的字符数。如果要用另一个替换所有出现的特定子字符串,请使用两个参数的replace()重载之一。<br /> 常见的要求是从字符串中删除空格字符(’\n’,’\t’,”等)。如果要从QString的两端删除空格,请使用trimmed()函数。如果要从两端删除空格并用字符串中的单个空格字符替换多个连续的空格,请使用simpleed()。<br /> 如果要查找QString中所有出现的特定字符或子字符串,请使用indexOf()或lastIndexOf()函数。前者从给定的索引位置开始向前搜索,后者向后搜索。两者都返回找到的字符或子字符串的索引位置;否则,它们返回-1。例如,下面是一个典型的循环,该循环查找特定子串的所有出现:</p> <p>QString提供了许多用于将数字转换为字符串以及字符串转换为数字的功能。请参见arg()函数,setNum()函数,number()静态函数以及toInt(),toDouble()和类似函数。<br /> 要获取字符串的大写或小写版本,请使用toUpper()或toLower()。<br /> 字符串列表由QStringList类处理。您可以使用split()函数将字符串拆分为字符串列表,然后使用QStringList::join()函数使可选的分隔符将字符串列表合并为单个字符串。您可以使用QStringList::filter()函数从包含特定子字符串或与特定QRegExp匹配的字符串列表中获取字符串列表。<br /> Querying String Data 查询字符串数据<br /> 如果要查看QString是否以特定的子字符串开头或结尾,请使用startsWith()或endsWith()。如果仅想检查QString是否包含特定字符或子字符串,请使用contains()函数。如果要确定字符串中某个特定字符或子字符串出现了多少次,请使用count()。<br /> 可以使用重载运算符(例如operator <(),operator =()等)来比较QString。请注意,比较仅基于字符的数字Unicode值。它的速度非常快,但不是人们期望的。 QString::localeAwareCompare()函数是对用户界面字符串进行排序的更好选择。<br /> 要获得指向实际字符数据的指针,请调用data()或constData()。这些函数返回一个指向QChar数据开头的指针。保证指针保持有效,直到在QString上调用非常量函数为止。<br /> Converting Between 8-Bit Strings and Unicode Strings 在8位字符串和Unicode字符串之间转换<br /> QString提供以下三个函数,以QByteArray的形式返回字符串的const char *版本:toUtf8(),toLatin1()和toLocal8Bit()。<br /> toLatin1()返回Latin-1(ISO 8859-1)编码的8位字符串。<br /> toUtf8()返回UTF-8编码的8位字符串。 UTF-8是US-ASCII(ANSI X3.4-1986)的超集,它通过多字节序列支持整个Unicode字符集。<br /> toLocal8Bit()使用系统的本地编码返回8位字符串。<br /> 为了从这些编码中的一个进行转换,QString提供了fromLatin1(),fromUtf8()和fromLocal8Bit()。通过QTextCodec类支持其他编码。<br /> 如上所述,QString提供了许多函数和运算符,使它们易于与const char *字符串进行互操作。但是,此函数是一把双刃剑:如果所有字符串都是US-ASCII或Latin-1,它使QString更加方便使用,但是始终存在使用错误的方式从隐式转换为const char *的隐患。为了将这些风险降到最低,您可以通过定义以下两个预处理器符号来关闭这些隐式转换:<br /> QT_NO_CAST_FROM_ASCII禁用从C字符串文字和指针到Unicode的自动转换。<br /> QT_RESTRICTED_CAST_FROM_ASCII允许从C字符和字符数组自动转换,但是禁用从字符指针到Unicode的自动转换。<br /> QT_NO_CAST_TO_ASCII禁用从QString到C字符串的自动转换。<br /> 为应用程序全局定义这些预处理器符号的一种方法是将以下条目添加到qmake项目文件中:</p> <p>然后,您需要显式调用fromUtf8(),fromLatin1()或fromLocal8Bit()以从8位字符串构造QString,或使用轻量级QLatin1String类,例如:</p> <p>同样,必须显式调用toLatin1(),toUtf8()或toLocal8Bit()才能将QString转换为8位字符串。 (通过QTextCodec类支持其他编码。)<br /> Note for C Programmers C程序员注意事项<br /> 由于C ++的类型系统以及QString被隐式共享的事实,QString可以像ints或其他基本类型一样对待。例如:</p> <p>结果变量是在堆栈上分配的普通变量。当调用return时,由于我们要按值返回,因此将调用copy构造函数,并返回字符串的副本。由于隐式共享,因此不会进行实际的复制。<br /> Distinction Between Null and Empty Strings 空字符串与空字符串之间的区别<br /> 由于历史原因,QString区分空字符串和空字符串。空字符串是使用QString的默认构造函数或通过将(const char *)0传递给构造函数进行初始化的字符串。空字符串是任何大小为0的字符串。空字符串始终为空,但空字符串不一定为null:</p> <p>除isNull()外的所有函数都将空字符串与空字符串相同。例如,toUtf8()。constData()返回指向空字符串的’\0’字符的有效指针(非nullptr)。我们建议您始终使用isEmpty()函数,并避免使用isNull()<br /> Argument Formats 参数格式<br /> 在可以指定参数格式的成员函数中(例如,arg(),number()),参数格式可以是以下之一:</p> <p>还使用参数格式指定精度。对于“e”,“E”和“f”格式,精度表示小数点后的位数。对于“g”和“G”格式,精度表示有效位数的最大数量(省略零位)。<br /> More Efficient String Construction 更有效的弦线构造<br /> 在编译时已知许多字符串。但是琐碎的构造函数QString(“ Hello”)将复制字符串的内容,并将其内容视为Latin-1。为避免这种情况,可以使用QStringLiteral宏在编译时直接创建所需的数据。因此,根据文字构造QString不会在运行时引起任何开销。<br /> 效率稍差的方法是使用QLatin1String。此类包装C字符串文字,在编译时预先计算其长度,然后可以比常规C字符串文字更快地与QString比较和转换为QString。<br /> 使用QString’+’运算符,很容易从多个子字符串构造一个复杂的字符串。您将会经常编写如下代码:</p> <p>这些字符串构造中的任何一个都没有错,但是存在一些隐藏的低效率。从Qt 4.6开始,您可以消除它们。<br /> 首先,多次使用“+”运算符通常意味着要分配多个内存。当串联n个子字符串(其中n>2)时,最多可以有n-1个对内存分配器的调用。<br /> 在4.6中,添加了内部模板类QStringBuilder以及一些辅助函数。此类被标记为内部类,因此未出现在文档中,因为您无意在代码中实例化该类。如下所述,它将自动使用。如果要查看该类,可以在src / corelib / tools / qstringbuilder.cpp中找到。<br /> QStringBuilder使用表达式模板并重新实现’%’运算符,以便当您将’%’用于字符串连接而不是’+’时,多个子字符串连接将被推迟,直到最终结果将被分配给QString。至此,最终结果所需的内存量是已知的。然后,一次调用内存分配器以获取所需的空间,然后将子字符串一一复制到其中<br /> 通过内联和减少引用计数(通过QStringBuilder创建的QString通常具有ref计数为1,而QString ::append()需要额外测试),可以提高效率。<br /> 您可以通过两种方式访问此改进的字符串构造方法。直接的方法是在要使用QStringBuilder的任何地方,包括它,并在连接字符串时使用’%’运算符而不是’+’:</p> <p>最方便但不完全与源代码兼容的全局方法是在.pro文件中进行以下定义:</p> <p>并且’+’将在所有地方自动作为QStringBuilder’%’执行。<br /> Maximum size and out-of-memory conditions最大size和内存不足情况<br /> 当前版本的QString的大小被限制2GB(2^31字节)以下。确切的值取决于体系结构,因为它取决于管理数据块所需的开销,但不超过32个字节。原始数据块还受当前版本中int类型的限制为2 GB减去1个字节。由于QString每个字符使用两个字节,因此在一个QString中转换为不足2^30个字符。<br /> 万一内存分配失败,QString将抛出std::bad_alloc异常。 Qt容器中的内存不足情况是Qt引发异常的唯一情况。<br /> 请注意,操作系统可能会对拥有大量已分配内存(尤其是大的连续块)的应用程序施加进一步的限制。这些考虑因素,此类行为的配置或任何缓解措施均不在Qt API的范围之内。<br /> 另请参见fromRawData(),QChar,QLatin1String,QByteArray和QStringRef。<br /> Public Functions 公共函数<br /> QString::QString(const QByteArray &ba)<br /> 构造一个用字节数组ba初始化的字符串。使用fromUtf8()将给定的字节数组转换为Unicode。在第一个0字符处停止复制,否则复制整个字节数组。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此构造函数。例如,如果要确保所有用户可见的字符串都通过QObject::tr(),这将很有用。<br /> 另请参见fromLatin1(),fromLocal8Bit(),fromUtf8()和QT_NO_CAST_FROM_ASCII<br /> QString::QString(const char *str)<br /> 构造一个使用8位字符串str初始化的字符串。使用fromUtf8()函数将给定的const char指针转换为Unicode。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此构造函数。例如,如果要确保所有用户可见的字符串都通过QObject::tr(),这将很有用。<br /> 注意:定义QT_RESTRICTED_CAST_FROM_ASCII也会禁用此构造函数,但改为启用QString(const char(&ch)[N])构造函数。在这种情况下,未定义使用非文字输入,带有嵌入式NUL字符或非7位字符的输入。<br /> 另请参见fromLatin1(),fromLocal8Bit(),fromUtf8(),QT_NO_CAST_FROM_ASCII和QT_RESTRICTED_CAST_FROM_ASCII。<br /> QString::QString(QString &&other)<br /> Move构造一个QString实例,使其指向other对象指向的同一对象。<br /> 此函数在Qt 5.2中引入。<br /> QString::QString(const QString &other)<br /> 构造other的副本。<br /> 由于QString是隐式共享的,因此此操作花费的时间是恒定的。这使得从函数快速返回QString。如果共享实例被修改,它将被复制(写时复制),这需要线性时间。<br /> 另请参阅operator =()。<br /> QString::QString(QLatin1String str)<br /> 构造Latin-1字符串str的副本。<br /> 另请参见fromLatin1()。<br /> QString::QString(int size, QChar ch)<br /> 构造一个给定大小的字符串,并将每个字符设置为ch。<br /> 另请参见fill()。<br /> QString::QString(QChar ch)<br /> 构造一个大小为1的字符串,其中包含字符ch。<br /> QString::QString(const QChar *unicode, int size = -1)<br /> 构造一个使用unicode的QChar数组并且第一个size字符初始化的字符串。<br /> 如果unicode为0,则构造一个空字符串。<br /> 如果size为负数,则假定unicode指向以\0’结尾的数组,并且其长度是动态确定的。终止的空字符不被视为字符串的一部分。<br /> QString对字符串数据进行深层复制。 unicode数据按原样复制,并且保留字节顺序标记(如果存在)。<br /> 另请参见fromRawData()。<br /> QString::QString()<br /> 构造一个空字符串。空字符串也为空。<br /> 另请参见isEmpty()。<br /> QString &QString::operator=(const QByteArray &ba)<br /> 此函数重载operator =()。<br /> 将ba分配给此字符串。使用fromUtf8()函数将字节数组转换为Unicode。此函数在找到的第一个NUL字符或ba字节数组的末尾停止转换。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此运算符。例如,如果要确保所有用户可见的字符串都通过QObject::tr(),这将很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> QString &QString::operator=(QString &&other)<br /> 将other对象移至此QString实例。<br /> 此函数在Qt 5.2中引入<br /> QString &QString::operator=(const QString &other)<br /> 将此字符串分配为other,并返回对该字符串的引用。<br /> QString::~QString()<br /> 销毁字符串。<br /> QString &QString::append(const QString &str)<br /> 将字符串str追加到该字符串的末尾。例:</p> <p>这与使用insert()函数相同:</p> <p>append()函数通常非常快(恒定时间),因为QString在字符串数据的末尾预分配了额外的空间,因此它可以增长而不必每次都重新分配整个字符串。<br /> 另请参见operator + =(),prepend()和insert()。<br /> QString &QString::append(QChar ch)<br /> 此函数重载append()。<br /> 将字符ch附加到此字符串。<br /> QString &QString::append(const QChar *str, int len)<br /> 此函数重载append()。<br /> 将QChar数组str中的len个字符追加到此字符串。<br /> 此函数在Qt 5.0中引入。<br /> QString &QString::append(const QStringRef &reference)<br /> 将给定的字符串引用附加到此字符串并返回结果。<br /> 此函数在Qt 4.4中引入。<br /> QString &QString::append(QLatin1String str)<br /> 此函数重载append()。<br /> 将Latin-1字符串str附加到此字符串。<br /> QString &QString::append(const char *str)<br /> 此函数重载append()。<br /> 将字符串str追加到此字符串。使用fromUtf8()函数将给定的const char指针转换为Unicode。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此函数。例如,如果要确保所有用户可见的字符串都通过QObject::tr(),这将很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> QString &QString::append(const QByteArray &ba)<br /> 此函数重载append()。<br /> 将字节数组ba附加到此字符串。使用fromUtf8()函数将给定的字节数组转换为Unicode。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此函数。例如,如果要确保所有用户可见的字符串都通过QObject::tr(),这将很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> QString QString::arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 返回此字符串的副本,该副本的编号最低的地方标记被字符串a代替,即%1,%2,…,%99。<br /> fieldWidth指定参数a占用的最小空间。如果a需要的空间小于fieldWidth,则使用字符fillChar将其填充到fieldWidth。正的fieldWidth生成右对齐的文本。负的fieldWidth会产生左对齐的文本。<br /> 本示例说明了如何在处理文件列表时创建状态字符串以报告进度:</p> <p>首先,arg(i)替换%1。然后arg(total)替换%2。最后,arg(fileName)替换%3。<br /> 与应用程序asprintf()相比,使用arg()的一个优点是,如果将应用程序的字符串翻译成其他语言,则可以更改编号的位置标记的顺序,但是无论如何,每个arg()仍将替换编号最小的未替换位置标记它出现的位置。另外,如果位置标记%i在字符串中出现多次,则arg()会替换所有的位置。<br /> 如果没有剩余的未放置的位置标记,则输出警告消息,并且结果不确定。地标编号必须在1到99的范围内。<br /> QString QString::arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar =QLatin1Char(‘ ‘)) const<br /> 此函数重载arg()。<br /> fieldWidth指定a填充和填充字符fillChar的最小空间量。正值产生右对齐的文本;负值会产生左对齐的文本。<br /> base参数指定将整数a转换为字符串时要使用的基数。基数必须在2到36之间,其中8给出八进制,10十进制和16十六进制数。<br /> 如果fillChar为’0’(数字0,ASCII 48),则使用语言环境的零。对于负数,减号前可能会出现零填充。<br /> QString QString::arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 此函数重载arg()。<br /> fieldWidth指定a填充和填充字符fillChar的最小空间量。正值产生右对齐的文本;负值会产生左对齐的文本。<br /> base参数指定将整数a转换为字符串时要使用的基数。基数必须在2到36之间,其中8给出八进制,10十进制和16十六进制数。<br /> 如果fillChar为’0’(数字0,ASCII 48),则使用语言环境的零。对于负数,减号前可能会出现零填充。<br /> QString QString::arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 此函数重载arg()。<br /> fieldWidth指定a填充和填充字符fillChar的最小空间量。正值产生右对齐的文本;负值会产生左对齐的文本。<br /> 参数以给定的底数表示,默认为10,且必须在2到36之间。<br /> ‘%’后面可以有’L’,在这种情况下,序列将替换为a的局部表示。转换使用默认语言环境。默认语言环境由应用程序启动时的系统语言环境设置确定。可以使用QLocale :: setDefault()进行更改。如果基数不是10,则忽略’L’标志。</p> <p>如果fillChar为’0’(数字0,ASCII 48),则使用语言环境的零。对于负数,减号前可能会出现零填充。<br /> QString QString::arg(ulong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 此函数重载arg()。<br /> fieldWidth指定a填充和填充字符fillChar的最小空间量。正值产生右对齐的文本;负值会产生左对齐的文本。<br /> base参数指定将整数a转换为字符串时要使用的基数。基数必须在2到36之间,其中8给出八进制,10十进制和16十六进制数。<br /> 如果fillChar为’0’(数字0,ASCII 48),则使用语言环境的零。对于负数,减号前可能会出现零填充。<br /> QString QString::arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 此函数重载arg()。<br /> a参数以基数base表示,默认情况下为10,并且必须在2到36之间。对于除10以外的基数,a被视为无符号整数。<br /> fieldWidth指定a填充和填充字符fillChar的最小空间量。正值产生右对齐的文本;负值会产生左对齐的文本。<br /> ‘%’后面可以有’L’,在这种情况下,序列将替换为a的局部表示。转换使用由QLocale :: setDefault()设置的默认语言环境。如果未指定默认语言环境,则使用“ C”语言环境。如果基数不是10,则忽略’L’标志。</p> <p>如果fillChar为’0’(数字0,ASCII 48),则使用语言环境的零。对于负数,减号前可能会出现零填充。<br /> QString QString::arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 此函数重载arg()。<br /> base参数指定将整数a转换为字符串时要使用的基数。基数必须在2到36之间。<br /> 如果fillChar为’0’(数字0,ASCII 48),则使用语言环境的零。对于负数,减号前可能会出现零填充。<br /> QString QString::arg(short a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 此函数重载arg()。<br /> fieldWidth指定a填充和填充字符fillChar的最小空间量。正值产生右对齐的文本;负值会产生左对齐的文本。<br /> base参数指定将整数a转换为字符串时要使用的基数。基数必须在2到36之间,其中8给出八进制,10十进制和16十六进制数。<br /> 如果fillChar为’0’(数字0,ASCII 48),则使用语言环境的零。对于负数,减号前可能会出现零填充。<br /> QString QString::arg(ushort a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 此函数重载arg()。<br /> fieldWidth指定a填充和填充字符fillChar的最小空间量。正值产生右对齐的文本;负值会产生左对齐的文本。<br /> base参数指定将整数a转换为字符串时要使用的基数。基数必须在2到36之间,其中8给出八进制,10十进制和16十六进制数。<br /> 如果fillChar为’0’(数字0,ASCII 48),则使用语言环境的零。对于负数,减号前可能会出现零填充。<br /> QString QString::arg(double a, int fieldWidth = 0, char format = ‘g’, int precision = -1, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 此函数重载arg()。<br /> 参数a根据指定的格式和精度进行格式化。有关详细信息,请参见参数格式。<br /> fieldWidth指定a填充和填充字符fillChar的最小空间量。正值产生右对齐的文本;负值会产生左对齐的文本。</p> <p>‘%’后面可以有’L’,在这种情况下,序列将替换为a的局部表示。转换使用由QLocale :: setDefault()设置的默认语言环境。如果未指定默认语言环境,则使用“ C”语言环境。<br /> 如果fillChar为’0’(数字0,ASCII 48),则此函数将使用语言环境的零进行填充。对于负数,零填充可能会出现在减号之前。<br /> 另请参见QLocale :: toString()。<br /> QString QString::arg(char a, int fieldWidth = 0, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 此函数重载arg()。<br /> 参数a解释为Latin-1字符。<br /> QString QString::arg(QChar a, int fieldWidth = 0, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 此函数重载arg()。<br /> QString QString::arg(QStringView a, int fieldWidth = 0, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 这是一个重载函数。<br /> 返回此字符串的副本,该字符串的最低位标记由字符串a替换,即%1,%2,…,%99。<br /> fieldWidth指定a占用的最小空间。如果a所需的空间少于fieldWidth,则使用字符fillChar将其填充到fieldWidth。正的fieldWidth生成右对齐的文本。负的fieldWidth会产生左对齐的文本。<br /> 本示例说明了如何在处理文件列表时创建状态字符串以报告进度:</p> <p>首先,arg(i)替换%1。然后arg(total)替换%2。最后,arg(fileName)替换%3。<br /> 与应用程序asprintf()相比,使用arg()的一个优势是,如果将应用程序的字符串翻译成其他语言,则可以更改编号的位置标记的顺序,但是每个arg()仍将替换编号最小的未替换位置标记,无论出现在哪里。另外,如果位置标记%i在字符串中出现多次,则arg()会替换所有它们。<br /> 如果没有剩余的未替换的位置标记,则会显示一条警告消息,并且结果不确定。地标编号必须在1到99的范围内。<br /> Qt 5.10中引入了此函数。<br /> QString QString::arg(QLatin1String a, int fieldWidth = 0, QChar fillChar = QLatin1Char(‘ ‘)) const<br /> 这是一个重载函数。<br /> 返回此字符串的副本,该字符串的最低位标记由字符串a替换,即%1,%2,…,%99。<br /> fieldWidth指定a占用的最小空间。如果a所需的空间少于fieldWidth,则使用字符fillChar将其填充到fieldWidth。正的fieldWidth生成右对齐的文本。负的fieldWidth会产生左对齐的文本。<br /> 与应用程序asprintf()相比,使用arg()的一个优势是,如果将应用程序的字符串翻译成其他语言,则可以更改编号的位置标记的顺序,但是每个arg()仍将替换编号最小的未替换位置标记,无论出现在哪里。另外,如果位置标记%i在字符串中出现多次,则arg()会替换所有它们。<br /> 如果没有剩余的未替换的位置标记,则会显示一条警告消息,并且结果不确定。地标编号必须在1到99的范围内。<br /> 此函数是在Qt 5.10中引入的。<br /> QString QString::arg(const QString &a1, const QString &a2) const<br /> 此函数重载arg()。<br /> 这与str.arg(a1).arg(a2)相同,除了字符串a1和a2一次替换。如果a1包含例如%1:</p> <p>当编号的地方标记没有用空格分隔时,会发生类似的问题:</p> <p>让我们看一下替换:<br /> 首先,Hello替换%1,因此字符串变为“ Hello%3%2”。<br /> 然后,20替换%2,因此字符串变为“ Hello%320”。<br /> 由于最大的数字位置标记值为99,因此50将替换%32。<br /> 因此,字符串最终变为“ Hello500”。<br /> 在这种情况下,将产生预期的结果:</p> <p>QString QString::arg(const QString &a1,const QString &a2, const QString &a3) const<br /> 此函数重载arg()。<br /> 这与调用str.arg(a1).arg(a2).arg(a3)相同,除了字符串a1,a2和a3一次替换。<br /> QString QString::arg(const QString &a1,const QString &a2, const QString &a3, const QString &a4) const<br /> 此函数重载arg()。<br /> 这与调用str.arg(a1).arg(a2).arg(a3).arg(a4)相同,除了字符串a1,a2,a3和a4一次替换。<br /> QString QString::arg(const QString &a1,const QString &a2,const QString &a3,const QString &a4, const QString &a5) const<br /> 此函数重载arg()。<br /> 这与调用str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5)相同,除了字符串a1,a2,a3,a4和a5被替换为一关。<br /> QString QString::arg(const QString &a1,const QString &a2,const QString &a3,const QString &a4, const QString &a5, const QString &a6) const<br /> 此函数重载arg()。<br /> 这与调用str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6))相同,除了字符串a1,a2,a3,a4 ,a5和a6一次替换。<br /> QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7) const<br /> 此函数重载arg()。<br /> 这与调用str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7)相同,除了字符串a1,a2一次替换a3,a4,a5,a6和a7。<br /> QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8) const<br /> 此函数重载arg()。<br /> 这与调用str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8)相同一次替换字符串a1,a2,a3,a4,a5,a6,a7和a8。<br /> QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8, const QString &a9)const<br /> 此函数重载arg()。<br /> 这与调用str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8).arg( a9),只是一次替换了字符串a1,a2,a3,a4,a5,a6,a7,a8和a9。<br /> const QChar QString::at(int position) const<br /> 返回字符串中给定索引位置处的字符。<br /> 该位置必须是字符串中的有效索引位置(即0 <= position isNull()) {<br /> qDebug() <unicode();<br /> ++data;<br /> }<br /> 注意,仅当字符串未通过其他方式修改时,指针才保持有效。 对于只读访问,constData()更快,因为它永远不会引起深层复制。<br /> 另请参见constData()和operator []()。<br /> const QChar *QString::data() const<br /> 这是一个过载功能。<br /> 注意:返回的字符串不能以’\ 0’结尾。 使用size()确定数组的长度。<br /> 另请参见fromRawData()。<br /> QString :: iterator QString :: end()<br /> 返回一个STL样式的迭代器,该迭代器指向虚拟字符在字符串中最后一个字符之后<br /> 另请参见begin()和constEnd()。<br /> QString::const_iterator QString::end() const<br /> 此函数重载end()。<br /> bool QString::endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 如果字符串以s结尾,则返回true;否则,返回false。否则返回false。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> QString str = “Bananas”;<br /> str.endsWith(“anas”); // returns true<br /> str.endsWith(“pple”); // returns false<br /> 另请参见startsWith()。<br /> bool QString::endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载endsWith()。<br /> 如果字符串以字符串引用s结尾,则返回true;否则,返回true。否则返回false。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 此功能在Qt 4.8中引入。<br /> 另请参见startsWith()。<br /> bool QString::endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载endsWith()。<br /> 如果字符串以字符串视图str结尾,则返回true;否则,返回true。否则返回false。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> Qt 5.10中引入了此功能。<br /> 另请参见startsWith()。<br /> bool QString::endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载endsWith()。<br /> bool QString::endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 如果字符串以c结尾,则返回true;否则返回false。否则返回false。<br /> 此函数重载endsWith()。<br /> QString &QString::fill(QChar ch, int size = -1)<br /> 将字符串中的每个字符设置为字符ch。如果size与-1(默认值)不同,则将字符串预先调整为大小。<br /> 例如:<br /> QString str = “Berlin”;<br /> str.fill(‘z’);<br /> // str == “zzzzzz”</p> <pre><code>str.fill('A', 2); // str == "AA" </code></pre> <p>另请参见resize()。<br /> [static]QString QString::fromCFString(CFStringRef string)<br /> 构造一个新的QString,其中包含CFString string的副本。<br /> 此功能仅在OS X和iOS上可用。<br /> 此功能在Qt 5.2中引入。<br /> [static]QString QString::fromLatin1(const char *str, int size = -1)<br /> 返回一个QString,该字符串初始化为Latin-1字符串str的第一个大小字符。<br /> 如果size为-1(默认值),则将其视为strlen(str)。<br /> 另请参见toLatin1(),fromUtf8()和fromLocal8Bit()。<br /> QString QString::fromLatin1(const QByteArray &str)<br /> 这是一个过载功能。<br /> 返回以Latin-1字符串str初始化的QString。<br /> 此功能在Qt 5.0中引入。<br /> QString QString::fromLocal8Bit(const char *str, int size = -1)<br /> 返回以8位字符串str的第一个大小字符初始化的QString。<br /> 如果size为-1(默认值),则将其视为strlen(str)。<br /> QTextCodec :: codecForLocale()用于执行转换。<br /> 另请参见toLocal8Bit(),fromLatin1()和fromUtf8()。<br /> QString QString::fromLocal8Bit(const QByteArray &str)<br /> 这是一个过载功能。<br /> 返回使用8位字符串str初始化的QString。<br /> 此功能在Qt 5.0中引入。<br /> QString QString::fromNSString(const NSString *string)<br /> 构造一个新的QString,其中包含字符串NSString的副本。<br /> 此功能仅在OS X和iOS上可用。<br /> 此功能在Qt 5.2中引入。<br /> QString QString::fromRawData(const QChar *unicode, int size)<br /> 构造一个使用字符串unicode中的第一位Unicode字符的QString。 unicode中的数据不会被复制。只要存在QString(或其未修改的副本),调用者就必须能够保证不会删除或修改unicode。<br /> 任何尝试修改QString或它的副本的尝试都将导致它创建数据的深层副本,以确保未修改原始数据。<br /> 这是一个示例,该示例说明如何在内存中的原始数据上使用QRegularExpression而不需要将数据复制到QString中:<br /> QRegularExpression pattern(“\u00A4”);<br /> static const QChar unicode[] = {<br /> 0x005A, 0x007F, 0x00A4, 0x0060,<br /> 0x1009, 0x0020, 0x0020};<br /> int size = sizeof(unicode) / sizeof(QChar);</p> <pre><code>QString str = QString::fromRawData(unicode, size); if (str.contains(pattern) { // ... } </code></pre> <p>警告:使用fromRawData()创建的字符串不是’\ 0’终止的,除非原始数据在位置大小处包含’\ 0’字符。这意味着unicode()将不会返回以’\ 0’结尾的字符串(尽管utf16()会返回,但以复制原始数据为代价)。<br /> 另请参见fromUtf16()和setRawData()。<br /> QString QString::fromStdString(const std::string &str)<br /> 返回str字符串的副本。使用fromUtf8()函数将给定的字符串转换为Unicode。<br /> 另请参见fromLatin1(),fromLocal8Bit(),fromUtf8()和QByteArray :: fromStdString()。<br /> QString QString::fromStdU16String(const std::u16string &str)<br /> 返回str字符串的副本。假定给定的字符串以UTF-16编码。<br /> 此功能在Qt 5.5中引入。<br /> 另请参见fromUtf16(),fromStdWString()和fromStdU32String()。<br /> QString QString::fromStdU32String(const std::u32string &str)<br /> 返回str字符串的副本。假定给定的字符串以UCS-4编码。<br /> 此功能在Qt 5.5中引入。<br /> 另请参见fromUcs4(),fromStdWString()和fromStdU16String()。<br /> QString QString::fromStdWString(const std::wstring &str)<br /> 返回str字符串的副本。如果wchar_t的大小为2个字节(例如在Windows上),则假定给定的字符串在utf16中进行编码;如果wchar_t的大小为4个字节(大多数Unix系统),则假定为ucs4。<br /> 另请参见fromUtf16(),fromLatin1(),fromLocal8Bit(),fromUtf8(),fromUcs4(),fromStdU16String()和fromStdU32String()。<br /> QString QString::fromUcs4(const uint *unicode, int size = -1)<br /> 返回一个QString,该字符串初始化为Unicode字符串unicode(ISO-10646-UCS-4编码)的前几个字符。<br /> 如果size为-1(默认值),则unicode必须以\ 0’结尾。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见toUcs4(),fromUtf16(),utf16(),setUtf16(),fromWCharArray()和fromStdU32String()。<br /> QString QString::fromUcs4(const char32_t *str, int size = -1)<br /> 返回一个QString,该字符串初始化为Unicode字符串str(ISO-10646-UCS-4编码)的首个大小字符。<br /> 如果size为-1(默认值),则str必须以’0’结尾<br /> 此功能在Qt 4.2中引入。<br /> 另请参见toUcs4(),fromUtf16(),utf16(),setUtf16(),fromWCharArray()和fromStdU32String()。<br /> QString QString::fromUcs4(const char32_t *str, int size = -1)<br /> 返回一个QString,该字符串初始化为Unicode字符串str(ISO-10646-UCS-4编码)的首个大小字符。<br /> 如果size为-1(默认值),则str必须以’0’结尾。<br /> 此功能在Qt 5.3中引入。<br /> 另请参见toUcs4(),fromUtf16(),utf16(),setUtf16(),fromWCharArray()和fromStdU32String()。<br /> QString QString::fromUtf8(const char *str, int size = -1)<br /> 返回一个QString,该字符串初始化为UTF-8字符串str的第一个大小字节。<br /> 如果size为-1(默认值),则将其视为strlen(str)。<br /> UTF-8是Unicode编解码器,可以表示Unicode字符串(如QString)中的所有字符。但是,使用UTF-8可能会产生无效序列,如果发现任何无效序列,它们将被一个或多个“替换字符”替换,或被抑制。这些包括非Unicode序列,非字符,超长序列或编码为UTF-8的替代代码点。<br /> 只要所有UTF-8字符都在输入数据中终止,此功能就可以用于增量处理输入数据。字符串末尾的任何未终止字符都将被替换或取消显示。为了进行状态解码,请使用QTextDecoder。<br /> 另请参见toUtf8(),fromLatin1()和fromLocal8Bit()。<br /> QString QString::fromUtf8(const QByteArray &str)<br /> 这是一个过载功能。<br /> 返回使用UTF-8字符串str初始化的QString。<br /> 此功能在Qt 5.0中引入。<br /> QString QString::fromUtf16(const ushort *unicode, int size = -1)<br /> 返回一个QString,该字符串初始化为Unicode字符串unicode(ISO-10646-UTF-16编码)的前几个字符<br /> 如果size为-1(默认值),则unicode必须以\ 0’结尾。<br /> 此功能检查字节顺序标记(BOM)。如果丢失,则假定主机字节顺序。<br /> 与其他Unicode转换相比,此功能较慢。尽可能使用QString(const QChar *,int)或QString(const QChar *)。 QString可以对Unicode数据进行深层复制。<br /> ee也是utf16(),setUtf16()和fromStdU16String()。<br /> QString QString::fromUtf16(const char16_t *str, int size = -1)<br /> 返回一个QString,该字符串初始化为Unicode字符串str(ISO-10646-UTF-16编码)的首个大小字符。<br /> 如果size为-1(默认值),则str必须以’0’结尾。<br /> 此功能检查字节顺序标记(BOM)。如果丢失,则假定主机字节顺序。<br /> 与其他Unicode转换相比,此功能较慢。尽可能使用QString(const QChar *,int)或QString(const QChar *)。<br /> QString可以对Unicode数据进行深层复制。<br /> 他的功能在Qt 5.3中引入。<br /> 请参见utf16(),setUtf16()和fromStdU16String()。<br /> QString QString::fromWCharArray(const wchar_t *string, int size = -1)<br /> 返回string的副本,其中字符串的编码取决于wchar的大小。如果wchar为4字节,则字符串解释为UCS-4;如果wchar为2字节,则string解释为UTF-16。<br /> 如果size为-1(默认值),则字符串必须以\ 0’结尾。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见fromUtf16(),fromLatin1(),fromLocal8Bit(),fromUtf8(),fromUcs4()和fromStdWString()。<br /> QChar QString::front() const<br /> 返回字符串中的第一个字符。与at(0)相同。<br /> 提供此功能是为了实现STL兼容性<br /> 警告:在空字符串上调用此函数会构成未定义的行为。<br /> Qt 5.10中引入了此功能。<br /> 另请参见back(),at()和operator []()。<br /> QCharRef QString::front()<br /> 返回对字符串中第一个字符的引用。与operator [](0)相同。<br /> 提供此功能是为了实现STL兼容性。<br /> 警告:在空字符串上调用此函数会构成未定义的行为。<br /> Qt 5.10中引入了此功能。<br /> 另请参见back(),at()和operator []()。<br /> int QString::indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 返回字符串str在此字符串中首次出现的索引位置,从索引位置from开始向前搜索。如果找不到str,则返回-1。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 例如:<br /> QString x = “sticky question”;<br /> QString y = “sti”;<br /> x.indexOf(y); // returns 0<br /> x.indexOf(y, 1); // returns 10<br /> x.indexOf(y, 10); // returns 10<br /> x.indexOf(y, 11); // returns -1<br /> 如果from为-1,则从最后一个字符开始搜索;否则,搜索从最后一个字符开始。如果为-2,则位于最后一个字符的第二个字符附近,依此类推。<br /> 此功能在Qt 4.5中引入。<br /> 另请参见lastIndexOf(),contains()和count()。<br /> int QString::indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载indexOf()。<br /> 返回字符ch在字符串中首次出现的索引位置,从索引位置from开始向前搜索。如果找不到ch,则返回-1。<br /> int QString::indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 返回字符串str在此字符串中首次出现的索引位置,从索引位置from开始向前搜索。如果找不到str,则返回-1。<br /> If cs is Qt::CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.<br /> 例如:<br /> QString x = “sticky question”;<br /> QString y = “sti”;<br /> x.indexOf(y); // returns 0<br /> x.indexOf(y, 1); // returns 10<br /> x.indexOf(y, 10); // returns 10<br /> x.indexOf(y, 11); // returns -1<br /> 如果from为-1,则从最后一个字符开始搜索;否则,搜索从最后一个字符开始。如果为-2,则位于最后一个字符的第二个字符附近,依此类推。<br /> 另请参见lastIndexOf(),contains()和count()。<br /> int QString::indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载indexOf()。<br /> 返回字符串参考str在此字符串中首次出现的索引位置,从索引位置from开始向前搜索。如果找不到str,则返回-1。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 此功能在Qt 4.8中引入。<br /> int QString::indexOf(QStringView str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载indexOf()。<br /> 返回字符串视图str在此字符串中首次出现的索引位置,从索引位置from开始向前搜索。如果找不到str,则返回-1。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 如果from为-1,则从最后一个字符开始搜索;否则,搜索从最后一个字符开始。如果为-2,则位于最后一个字符的第二个字符附近,依此类推。<br /> Qt 5.14中引入了此功能。<br /> 另请参见QStringView :: indexOf(),lastIndexOf(),contains()和count()。<br /> int QString::indexOf(const QRegExp &rx, int from = 0) const<br /> 此函数重载indexOf()。<br /> 返回字符串中正则表达式rx的第一个匹配项的索引位置,从索引位置from开始向前搜索。如果rx在任何地方都不匹配,则返回-1。<br /> 例如:<br /> QString str = “the minimum”;<br /> str.indexOf(QRegExp(“m[aeiou]”), 0); // returns 4<br /> int QString::indexOf(QRegExp &rx, int from = 0) const<br /> 此函数重载indexOf()。<br /> 返回字符串中正则表达式rx的第一个匹配项的索引位置,从索引位置from开始向前搜索。如果rx在任何地方都不匹配,则返回-1。<br /> 如果存在匹配项,则rx正则表达式将包含匹配的捕获(请参见QRegExp :: matchedLength,QRegExp :: cap)。<br /> 例如:<br /> QString str = “the minimum”;<br /> str.indexOf(QRegExp(“m[aeiou]”), 0); // returns 4<br /> 此功能在Qt 4.5中引入。<br /> int QString::indexOf(const QRegularExpression &re, int from = 0) const<br /> 此函数重载indexOf()。<br /> 返回正则表达式re在字符串中的第一个匹配项的索引位置,从索引位置from开始向前搜索。<br /> 如果re在任何地方都不匹配,则返回-1。<br /> 例如:<br /> QString str = “the minimum”;<br /> str.indexOf(QRegularExpression(“m[aeiou]”), 0); // returns 4<br /> 此功能在Qt 5.0中引入。<br /> int QString::indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const<br /> 这是一个过载功能。<br /> 返回正则表达式re在字符串中的第一个匹配项的索引位置,从索引位置from开始向前搜索。<br /> 如果re在任何地方都不匹配,则返回-1。<br /> 如果匹配成功并且rmatch不为nullptr,则还将匹配结果写入rmatch所指向的QRegularExpressionMatch对象。<br /> 例如:<br /> QString str = “the minimum”;<br /> QRegularExpressionMatch match;<br /> str.indexOf(QRegularExpression(“m[aeiou]”), 0, &match); // returns 4<br /> // match.captured() == mi<br /> 此功能在Qt 5.5中引入。<br /> QString &QString::insert(int position,const QString &str)<br /> 将字符串str插入给定的索引位置,并返回对该字符串的引用。<br /> 例如:<br /> QString str = “Meal”;<br /> str.insert(1, QString(“ontr”));<br /> // str == “Montreal”<br /> 如果给定位置大于size(),则首先使用resize()扩展数组。<br /> 另请参见append(),prepend(),replace()和remove()。<br /> QString &QString::insert(int position, QChar ch)<br /> 此函数重载insert()。<br /> 将ch插入字符串中给定的索引位置。<br /> QString &QString::insert(int position,const QChar *unicode, int size)<br /> 此函数重载insert()。<br /> 在字符串的给定索引位置插入QChar数组unicode的第一个大小字符。<br /> QString &QString::insert(int position,const QStringRef &str)<br /> 此函数重载insert()。<br /> 将字符串引用str插入给定的索引位置,并返回对该字符串的引用。<br /> 如果给定位置大于size(),则首先使用resize()扩展数组。<br /> 此功能在Qt 5.5中引入。<br /> QString &QString::insert(int position, QLatin1String str)<br /> 此函数重载insert()。<br /> 在给定的索引位置插入Latin-1字符串str<br /> QString &QString::insert(int position,const char *str)<br /> 此函数重载insert()。<br /> 将C字符串str插入给定的索引位置position,并返回对该字符串的引用。<br /> 如果给定位置大于size(),则首先使用resize()扩展数组。<br /> 定义QT_NO_CAST_FROM_ASCII时,此功能不可用。<br /> 此功能在Qt 5.5中引入。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> QString &QString::insert(int position,const QByteArray &str)<br /> 此函数重载insert()。<br /> 将字节数组str插入给定的索引位置position,并返回对此字符串的引用。<br /> 如果给定位置大于size(),则首先使用resize()扩展数组。<br /> 定义QT_NO_CAST_FROM_ASCII时,此功能不可用。<br /> 此功能在Qt 5.5中引入。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> bool QString::isEmpty() const<br /> 如果字符串没有字符,则返回true;否则返回false。否则返回false。<br /> 例如:<br /> QString().isEmpty(); // returns true<br /> QString(“”).isEmpty(); // returns true<br /> QString(“x”).isEmpty(); // returns false<br /> QString(“abc”).isEmpty(); // returns false<br /> 另请参见size()。<br /> bool QString::isLower() const<br /> 如果字符串为小写,则返回true,即与其toLower()折叠相同。<br /> 请注意,这并不意味着该字符串不包含大写字母(某些大写字母没有小写字母折叠; toLower()将其保留不变)。有关更多信息,请参阅Unicode标准第3.13节。<br /> 此功能在Qt 5.12中引入。<br /> 另请参见QChar :: toLower()和isUpper()。<br /> bool QString::isNull() const<br /> 如果此字符串为null,则返回true;否则返回false。否则返回false。<br /> 例如:<br /> QString().isNull(); // returns true<br /> QString(“”).isNull(); // returns false<br /> QString(“abc”).isNull(); // returns false<br /> 由于历史原因,Qt区分空字符串和空字符串。对于大多数应用程序,重要的是字符串是否包含任何数据,这可以使用isEmpty()函数确定。<br /> 另请参见isEmpty()。<br /> bool QString::isRightToLeft() const<br /> 如果从右到左读取字符串,则返回true。<br /> 另请参见QStringRef :: isRightToLeft()。<br /> bool QString::isUpper() const<br /> 如果字符串为大写,则返回true,即与其toUpper()折叠相同。<br /> 请注意,这并不能意味着该字符串不包含小写字母(某些小写字母没有大写一个折叠;它们被保持不变TOUPPER())。有关更多信息,请参阅Unicode标准第3.13节。<br /> 此功能在Qt 5.12中引入。<br /> 另请参见QChar :: toUpper()和isLower()。<br /> int QString :: lastIndexOf(const QString&str,int from = -1,Qt :: CaseSensitivity cs = Qt :: CaseSensitive)const<br /> 返回字符串str在此字符串中最后一次出现的索引位置,从中从索引位置向后搜索。如果from为-1(默认值),则搜索从最后一个字符开始;如果from是-2,则在倒数第二个字符之后,依此类推。如果找不到str,则返回-1 。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。<br /> 例如<br /> QString x = “crazy azimuths”;<br /> QString y = “az”;<br /> x.lastIndexOf(y); // returns 6<br /> x.lastIndexOf(y, 6); // returns 6<br /> x.lastIndexOf(y, 5); // returns 2<br /> x.lastIndexOf(y, 1); // returns -1</p> <p>另请参见indexOf(),contains()和count()。<br /> int QString::lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载lastIndexOf()。<br /> 返回字符ch的最后一次出现的索引位置,从位置from向后搜索。<br /> int QString::lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载lastIndexOf()。<br /> 返回字符串str在该字符串中最后一次出现的索引位置,从索引位置from开始向后搜索。如果from为-1(默认值),则搜索从最后一个字符开始;否则,开始搜索。如果from是-2,则在倒数第二个字符之后,依此类推。如果找不到str,则返回-1。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 例如:<br /> QString x = “crazy azimuths”;<br /> QString y = “az”;<br /> x.lastIndexOf(y); // returns 6<br /> x.lastIndexOf(y, 6); // returns 6<br /> x.lastIndexOf(y, 5); // returns 2<br /> x.lastIndexOf(y, 1); // returns -1<br /> 此功能在Qt 4.5中引入。<br /> 另请参见indexOf(),contains()和count()。<br /> int QString::lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载lastIndexOf()。<br /> 返回此字符串中最后一次出现的字符串引用str的索引位置,从索引位置from开始向后搜索。如果from为-1(默认值),则搜索从最后一个字符开始;否则,开始搜索。如果from是-2,则在倒数第二个字符之后,依此类推。如果找不到str,则返回-1。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 此功能在Qt 4.8中引入。<br /> 另请参见indexOf(),contains()和count()。<br /> int QString::lastIndexOf(QStringView str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载lastIndexOf()。<br /> 返回该字符串中最后一次出现的字符串视图str的索引位置,从索引位置from开始向后搜索。如果from为-1(默认值),则搜索从最后一个字符开始;否则,开始搜索。如果from是-2,则在倒数第二个字符之后,依此类推。如果找不到str,则返回-1。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> Qt 5.14中引入了此功能。<br /> 另请参见indexOf(),contains()和count()。<br /> int QString::lastIndexOf(const QRegExp &rx, int from = -1) const<br /> 此函数重载lastIndexOf()。<br /> 返回字符串中正则表达式rx的最后一个匹配项的索引位置,从索引位置from开始向后搜索。如果rx在任何地方都不匹配,则返回-1。<br /> 例如:<br /> QString str = “the minimum”;<br /> str.lastIndexOf(QRegExp(“m[aeiou]”)); // returns 8<br /> int QString::lastIndexOf(QRegExp &rx, int from = -1) const<br /> 此函数重载lastIndexOf()。<br /> 返回字符串中正则表达式rx的最后一个匹配项的索引位置,从索引位置from开始向后搜索。如果rx在任何地方都不匹配,则返回-1。<br /> 如果存在匹配项,则rx正则表达式将包含匹配的捕获(请参见QRegExp :: matchedLength,QRegExp :: cap)。<br /> 例如:<br /> QString str = “the minimum”;<br /> str.lastIndexOf(QRegExp(“m[aeiou]”)); // returns 8<br /> 此功能在Qt 4.5中引入。<br /> int QString::lastIndexOf(QRegExp &rx, int from = -1) const<br /> 此函数重载lastIndexOf()。<br /> 返回字符串中正则表达式rx的最后一个匹配项的索引位置,从索引位置from开始向后搜索。如果rx在任何地方都不匹配,则返回-1。<br /> 如果存在匹配项,则rx正则表达式将包含匹配的捕获(请参见QRegExp :: matchedLength,QRegExp :: cap)。<br /> 例如:<br /> QString str = “the minimum”;<br /> str.lastIndexOf(QRegExp(“m[aeiou]”)); // returns 8<br /> 此功能在Qt 4.5中引入。<br /> int QString::lastIndexOf(const QRegularExpression &re, int from = -1) const<br /> 此函数重载lastIndexOf()。<br /> 返回字符串中正则表达式re的最后一个匹配项的索引位置,该字符串从索引位置from开始。如果re在任何地方都不匹配,则返回-1。<br /> 例如:<br /> QString str = “the minimum”;<br /> str.lastIndexOf(QRegularExpression(“m[aeiou]”)); // returns 8<br /> 此功能在Qt 5.0中引入。<br /> int QString::lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch <em>rmatch) const<br /> 这是一个过载功能。<br /> 返回字符串中正则表达式re的最后一个匹配项的索引位置,该字符串从索引位置from开始。如果re在任何地方都不匹配,则返回-1。<br /> 如果匹配成功并且rmatch不为nullptr,则还将匹配结果写入rmatch所指向的QRegularExpressionMatch对象。<br /> 例如:<br /> QString str = “the minimum”;<br /> QRegularExpressionMatch match;<br /> str.lastIndexOf(QRegularExpression(“m[aeiou]”), -1, &match); // returns 8<br /> // match.captured() == mu<br /> 此功能在Qt 5.5中引入。<br /> QString QString::left(int n) const<br /> 返回一个子字符串,其中包含该字符串的最左边的n个字符。<br /> 如果n大于或等于size()或小于零,则返回整个字符串。<br /> QString x = “Pineapple”;<br /> QString y = x.left(4); // y == “Pine”<br /> 另请参见right(),mid(),startsWith(),chopped(),chop()和truncate()。<br /> QString QString::leftJustified(int width, QChar fill = QLatin1Char(‘ ‘), bool truncate = false) const<br /> 返回一个大小为width的字符串,其中包含用填充字符填充的字符串。<br /> 如果truncate为false并且字符串的size()大于width,则返回的字符串是该字符串的副本。<br /> QString s = “apple”;<br /> QString t = s.leftJustified(8, ‘.’); // t == “apple…”<br /> 如果truncate为true,并且字符串的size()大于width,则删除位置宽度之后的字符串副本中的所有字符,并返回该副本。<br /> QString str = “Pineapple”;<br /> str = str.leftJustified(5, ‘.’, true); // str == “Pinea”<br /> 另请参见rightJustified()。<br /> QStringRef QString::leftRef(int n) const<br /> 返回对字符串最左边n个字符的子字符串引用。<br /> 如果n大于或等于size()或小于零,则返回对整个字符串的引用。<br /> QString x = “Pineapple”;<br /> QStringRef y = x.leftRef(4); // y == “Pine”<br /> 此功能在Qt 4.4中引入<br /> 另请参见left(),rightRef(),midRef()和startsWith()。<br /> int QString::length() const<br /> 返回此字符串中的字符数。等效于size()。<br /> 另请参见resize()。<br /> int QString::localeAwareCompare(const QString &s1, const QString &s2)<br /> 将s1与s2进行比较,如果s1小于,等于或大于s2,则返回小于,等于或大于零的整数。<br /> 比较以区域设置和平台相关的方式执行。使用此功能可将排序后的字符串列表呈现给用户。<br /> 在macOS和iOS上,此功能根据“国际首选项”面板中的“排序列表的顺序”设置进行比较。<br /> 另请参见compare()和QLocale。<br /> int QString::localeAwareCompare(const QString &other) const<br /> 此函数重载localeAwareCompare()。<br /> 将此字符串与另一个字符串进行比较,如果该字符串小于,等于或大于另一个字符串,则返回小于,等于或大于零的整数。<br /> 比较以区域设置和平台相关的方式执行。使用此功能可将排序后的字符串列表呈现给用户。<br /> 与localeAwareCompare(</em> this,other)相同。<br /> int QString::localeAwareCompare(const QStringRef &other) const<br /> 此函数重载localeAwareCompare()。<br /> 将此字符串与other字符串进行比较,如果该字符串小于,等于或大于other字符串,则返回小于,等于或大于零的整数。<br /> 比较以区域设置和平台相关的方式执行。使用此功能可将排序后的字符串列表呈现给用户。<br /> 与localeAwareCompare(* this,other)相同。<br /> 此功能在Qt 4.5中引入。<br /> int QString::localeAwareCompare(const QString &s1, const QStringRef &s2)<br /> 此函数重载localeAwareCompare()。<br /> 将s1与s2进行比较,如果s1小于,等于或大于s2,则返回小于,等于或大于零的整数。<br /> 比较以区域设置和平台相关的方式执行。使用此功能可将排序后的字符串列表呈现给用户。<br /> 此功能在Qt 4.5中引入。<br /> QString QString::mid(int position, int n = -1) const<br /> 返回一个字符串,该字符串从指定的位置索引position开始,包含此字符串的n个字符。<br /> 如果位置索引position超过字符串的长度,则返回一个空字符串。如果从给定位置position开始的字符串中少于n个字符可用,或者n为-1(默认值),则该函数返回从指定位置position开始可用的所有字符。<br /> 例如:<br /> QString x = “Nine pineapples”;<br /> QString y = x.mid(5, 4); / y == “pine”<br /> QString z = x.mid(5); // z == “pineapples”<br /> 另请参见left(),right(),chopped(),chop()和truncate()。<br /> QStringRef QString::midRef(int position, int n = -1) const<br /> 从指定位置position开始,返回对该字符串的n个字符的子字符串引用。<br /> 如果位置超过字符串的长度,则返回空引用。<br /> 如果字符串中的可用字符少于n个(从给定位置开始),或者n为-1(默认值),则该函数将从指定位置position开始返回所有字符。<br /> 例如:<br /> QString x = “Nine pineapples”;<br /> QStringRef y = x.midRef(5, 4); // y == “pine”<br /> QStringRef z = x.midRef(5); // z == “pineapples”<br /> 此功能在Qt 4.4中引入。<br /> 另请参见mid(),leftRef()和rightRef()。<br /> QString QString::normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const<br /> 根据给定版本的Unicode标准,以给定Unicode规范化模式返回字符串。<br /> QString QString::number(long n, int base = 10)<br /> 根据指定的基数返回与数字n等效的字符串。<br /> 默认情况下,底数是10,并且必须在2到36之间。对于10以外的底数,n被视为无符号整数。<br /> 格式始终使用QLocale :: C,即英语/美国。要获取数字的本地化字符串表示形式,请使用带有适当语言环境的QLocale :: toString()。<br /> long a = 63;<br /> QString s = QString::number(a, 16); // s == “3f”<br /> QString t = QString::number(a, 16).toUpper(); // t == “3F”<br /> 另请参见setNum()。<br /> QString QString::number(int n, int base = 10)<br /> 这是一个过载功能。<br /> QString QString::number(uint n, int base = 10)<br /> 这是一个过载功能。<br /> QString QString::number(ulong n, int base = 10)<br /> 这是一个过载功能。<br /> QString QString::number(qlonglong n, int base = 10)<br /> 这是一个过载功能。<br /> QString QString::number(qulonglong n, int base = 10)<br /> 这是一个过载功能。<br /> QString QString::number(double n, char format = ‘g’, int precision = 6)<br /> 返回与数字n等效的字符串,根据指定的格式和精度格式化。有关详细信息,请参见参数格式。<br /> 与QLocale :: toString()不同,此函数不支持用户的语言环境设置。<br /> 另请参见setNum()和QLocale :: toString()。<br /> QString &QString::prepend(const QString &str)<br /> 将字符串str放在此字符串的开头,并返回对该字符串的引用。<br /> 例如:<br /> QString x = “ship”;<br /> QString y = “air”;<br /> x.prepend(y);<br /> // x == “airship”<br /> 另请参见append()和insert()<br /> QString &QString::prepend(QChar ch)<br /> 此函数重载prepend()。<br /> 在此字符串前添加字符ch。<br /> QString &QString::prepend(const QChar <em>str, int len)<br /> 此函数重载prepend()。<br /> 将QChar数组str中的len个字符添加到此字符串,并返回对该字符串的引用。<br /> 此功能在Qt 5.5中引入。<br /> QString &QString::prepend(const QStringRef &str)<br /> 此函数重载prepend()。<br /> 将字符串引用str附加到该字符串的开头,并返回对该字符串的引用。<br /> 此功能在Qt 5.5中引入。<br /> QString &QString::prepend(QLatin1String str)<br /> 此函数重载了prepend()。<br /> 将Latin-1字符串str附加到此字符串。<br /> QString &QString::prepend(const char *str)<br /> 此函数重载了prepend()。<br /> 将字符串str附加到此字符串。使用fromUtf8()函数将const char指针转换为Unicode。<br /> 您可以在编译应用程序时通过定QT_NO_CAST_FROM_ASCII来禁用此功能。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> QString &QString::prepend(const QByteArray &ba)<br /> 此函数重载了prepend()<br /> 将字节数组ba附加到此字符串。使用fromUtf8()函数将字节数组转换为Unicode。<br /> 您可以在编译应用程序时通过定QT_NO_CAST_FROM_ASCII来禁用此功能。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> void QString::push_back(const QString &other)<br /> 提供此函数是为了实现STL兼容性,将给定的other字符串附加到此字符串的末尾。它等效于append(other)。<br /> 另请参见append()。<br /> void QString::push_back(QChar ch)<br /> 这是一个过载功能。<br /> 将给定的ch字符附加到此字符串的末尾。<br /> void QString::push_front(const QString &other)<br /> 提供此功能是为了实现STL兼容性,将给定的other字符串放在此字符串的开头。它等效于prepend(other)。<br /> 另请参见prepend()。<br /> void QString::push_front(QChar ch)<br /> 这是一个过载功能。<br /> 将给定的ch字符添加到此字符串的开头<br /> QString::reverse_iterator QString::rbegin()<br /> 以相反的顺序返回一个STL样式的反向迭代器,该迭代器指向字符串中的第一个字符。<br /> 此功能在Qt 5.6中引入。<br /> 另请参见begin(),crbegin()和rend()。<br /> QString::const_reverse_iterator QString::rbegin() const<br /> 这是一个过载功能。<br /> 他的功能在Qt 5.6中引入。<br /> QString &QString::remove(int position, int n)<br /> 从给定位置索引position处开始,从字符串中删除n个字符,并返回对该字符串的引用。<br /> 如果指定的位置索引position在字符串中,但位置+ n超出字符串的末尾,则字符串将在指定位置position被截断。<br /> QString s = “Montreal”;<br /> s.remove(1, 4);<br /> // s == “Meal”<br /> 另请参见insert()和replace()。<br /> QString &QString::remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)<br /> 删除此字符串中字符ch的所有出现,并返回对该字符串的引用。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 例如:<br /> QString t = “Ali Baba”;<br /> t.remove(QChar(‘a’), Qt::CaseInsensitive);<br /> // t == “li Bb”<br /> 这与replace(ch , “”,cs)相同。<br /> 请参见replace()。<br /> QString &QString::remove(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive)<br /> 这是一个过载功能。<br /> 删除此字符串中给定的str字符串的所有出现,并返回对该字符串的引用。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 这与replace(str, “”,cs)相同。<br /> 此功能在Qt 5.11中引入。<br /> 另请参见replace()。<br /> QString &QString::remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)<br /> 删除此字符串中给定的str字符串的所有出现,并返回对该字符串的引用。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 这与replace(str, “”,cs)相同。<br /> 另请参见replace()。<br /> QString &QString::remove(const QRegExp &rx)<br /> 删除字符串中每次出现的正则表达式rx,并返回对该字符串的引用。例如:<br /> QString r = “Telephone”;<br /> r.remove(QRegExp(“[aeiou].”));<br /> // r == “The”<br /> 另请参见indexOf(),lastIndexOf()和replace()。<br /> QString &QString::remove(const QRegularExpression &re)<br /> 删除字符串中所有出现的正则表达式re,并返回对该字符串的引用。例如:<br /> QString r = “Telephone”;<br /> r.remove(QRegularExpression(“[aeiou].”));<br /> // r == “The”<br /> 此功能在Qt 5.0中引入。<br /> 另请参见indexOf(),lastIndexOf()和replace()。<br /> QString::reverse_iterator QString::rend()<br /> 以相反的顺序返回一个STL样式的反向迭代器,该迭代器指向字符串中最后一个字符之后的一个。<br /> 此功能在Qt 5.6中引入。<br /> 另请参见end(),crend()和rbegin()。<br /> QString::const_reverse_iterator QString::rend() const<br /> 这是一个过载功能。<br /> 此功能在Qt 5.6中引入。<br /> QString QString::repeated(int times) const<br /> 返回此字符串的副本,重复指定的次数。<br /> 如果times小于1,则返回一个空字符串。<br /> 例如:<br /> QString str(“ab”);<br /> str.repeated(4); // returns “abababab”<br /> 他的功能在Qt 4.5中引入。<br /> QString &QString::replace(int position, int n, const QString &after)<br /> 将索引位置position开头的n个字符替换为之后的字符串,并返回对此字符串的引用。<br /> 注意:如果指定的位置索引position在字符串内,但位置+ n超出字符串范围,则将调整n到字符串末尾停止。<br /> 例如:<br /> QString x = “Say yes!”;<br /> QString y = “no”;<br /> x.replace(4, 3, y);<br /> // x == “Say no!”<br /> 另请参见insert()和remove()。<br /> QString &QString::replace(int position, int n, QChar after)<br /> 此函数重载replace()。<br /> 用索引后的字符替换从索引位置position开始的n个字符,并返回对此字符串的引用。<br /> QString &QString::replace(int position, int n, const QChar *unicode, int size)<br /> 此函数重载replace()。<br /> 用QChar数组unicode的第一个大写字符替换从索引位置position开始的n个字符,并返回对此字符串的引用。<br /> QString &QString::replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive)<br /> 此函数重载replace()。<br /> after(之后)的字符替换before(之前)出现的每个字符,并返回对此字符串的引用。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。<br /> QString &QString::replace(const QChar *before, int blen,const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive)<br /> 此函数重载replace()。<br /> 将此字符串中出现的前一个前blen字符替换为后一个前alen字符,并返回对该字符串的引用。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 此功能在Qt 4.5中引入。<br /> QString &QString::replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)<br /> 此函数重载replace()。<br /> 将出现的每个字符串替换为after(之后)的字符串,并返回对该字符串的引用。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。<br /> 注意:替换后不会重新扫描文本。<br /> 此功能在Qt 4.5中引入。<br /> QString &QString::replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)<br /> 此函数重载replace()。<br /> 将出现的每个字符串替换为after(之后)的字符串,并返回对该字符串的引用。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。<br /> 注意:替换后不会重新扫描文本。<br /> 此功能在Qt 4.5中引入。<br /> QString &QString::replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)<br /> 此函数重载replace()。<br /> 将出现的每个字符串替换为after(之后)的字符串,并返回对该字符串的引用。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。<br /> 注意:替换后不会重新扫描文本。<br /> 此功能在Qt 4.5中引入。<br /> QString &QString::replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)<br /> 此函数重载replace()。<br /> 将出现的每个字符串替换为after(之后)的字符串,并返回对该字符串的引用。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 例如:<br /> QString str = “colour behaviour flavour neighbour”;<br /> str.replace(QString(“ou”), QString(“o”));<br /> // str == “color behavior flavor neighbor”<br /> 替换文本在插入后不会重新扫描。<br /> 例如:<br /> QString equis = “xxxxxx”;<br /> equis.replace(“xx”, “x”);<br /> // equis == “xxx”<br /> QString &QString::replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)<br /> 此函数重载replace()。<br /> 将字符串中每次出现的字符ch替换为after,然后返回对该字符串的引用。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。<br /> QString &QString::replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)<br /> 此函数重载replace()。<br /> 用after(后面)的字符串替换每次出现的字符c,并返回对该字符串的引用。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。<br /> 注意:替换后不会重新扫描文本。<br /> 此功能在Qt 4.5中引入。<br /> QString &QString::replace(const QRegExp &rx, const QString &after)<br /> 此函数重载replace()。<br /> 用after替换字符串中每次出现的正则表达式rx。返回对该字符串的引用。例如:<br /> QString s = “Banana”;<br /> s.replace(QRegExp(“a[mn]”), “ox”);<br /> // s == “Boxoxa”<br /> For regular expressions containing capturing parentheses, occurrences of \1, \2, …, in after are replaced with rx.cap(1), cap(2), …<br /> QString t = “A <i>bon mot</i>.”;<br /> t.replace(QRegExp(“<i>([^<]</em>)</i>“), “\emph{\1}”);<br /> // t == “A \emph{bon mot}.”<br /> 另请参见indexOf(),lastIndexOf(),remove()和QRegExp :: cap()。<br /> QString &QString::replace(const QRegularExpression &re, const QString &after)<br /> 此函数重载replace()。<br /> 用after替换字符串中每一次出现的正则表达式re。返回对该字符串的引用。例如:<br /> QString s = “Banana”;<br /> s.replace(QRegularExpression(“a[mn]”), “ox”);<br /> // s == “Boxoxa”<br /> 对于包含捕获组的正则表达式,之后出现的\ 1,\ 2,…,被对应的捕获组捕获的字符串替换。<br /> QString t = “A <i>bon mot</i>.”;<br /> t.replace(QRegularExpression(“<i>([^<]*)</i>“), “\emph{\1}”);<br /> // t == “A \emph{bon mot}.”<br /> 此功能在Qt 5.0中引入。<br /> 另请参见indexOf(),lastIndexOf(),remove(),QRegularExpression和QRegularExpressionMatch。<br /> void QString::reserve(int size)<br /> 尝试为至少大小字符分配内存。如果事先知道字符串的大小,则可以调用此函数,并且如果经常调整字符串的大小,则可能会获得更好的性能。如果size被低估,那么最糟糕的情况就是QString会变慢。<br /> 此函数的唯一目的是提供一种微调QString的内存使用情况的方法。通常,您几乎不需要调用此函数。如果要更改字符串的大小,请调用resize()。<br /> 对于需要建立长字符串并希望避免重复分配的代码,此功能很有用。在此示例中,我们希望添加到字符串中直到某些条件成立为止,并且我们相当确定其大小足够大,值得进行对reserve()的调用:<br /> QString result;<br /> int maxSize;<br /> bool condition;<br /> QChar nextChar;</p> <pre><code>result.reserve(maxSize); while (condition) result.append(nextChar); result.squeeze(); </code></pre> <p>另请参见squeeze()和Capacity()。<br /> void QString::resize(int size)<br /> 将字符串的大小设置为大小字符。<br /> 如果size大于当前大小,则字符串将被扩展以使其长度变长,并在末尾添加额外的字符。新字符未初始化。<br /> 如果大小小于当前大小,将从末尾删除字符。<br /> 例如:<br /> QString s = “Hello world”;<br /> s.resize(5);<br /> // s == “Hello”</p> <pre><code>s.resize(8); // s == "Hello???" (where ? stands for any character) </code></pre> <p>如果要在字符串后附加一定数量的相同字符,请使用resize(int,QChar)重载。<br /> 如果要扩展字符串以使其达到特定宽度并用特定字符填充新位置,请使用leftJustified()函数:<br /> 如果size为负,则等于传递零。<br /> QString r = “Hello”;<br /> r = r.leftJustified(10, ‘ ‘);<br /> // r == “Hello ”<br /> 另请参见truncate()和reserve()。<br /> void QString::resize(int size, QChar fillChar)<br /> 这是一个过载功能。<br /> 与resize(int)不同,此重载将新字符初始化为fillChar:<br /> QString t = “Hello”;<br /> r.resize(t.size() + 10, ‘X’);<br /> // t == “HelloXXXXXXXXXX”<br /> 此功能在Qt 5.7中引入。<br /> QString QString::right(int n) const<br /> 返回一个子字符串,其中包含该字符串的最右边的n个字符。<br /> 如果n大于或等于size()或小于零,则返回整个字符串。<br /> QString x = “Pineapple”;<br /> QString y = x.right(5); // y == “apple”<br /> 另请参见left(),mid(),endsWith(),chopped(),chop()和truncate()。<br /> QString QString::rightJustified(int width, QChar fill = QLatin1Char(‘ ‘), bool truncate = false) const<br /> 返回一个size()宽度的字符串,其中包含填充字符,后跟该字符串。例如:<br /> QString s = “apple”;<br /> QString t = s.rightJustified(8, ‘.’); // t == “…apple”<br /> 如果truncate为false并且字符串的size()大于width,则返回的字符串是该字符串的副本。<br /> 如果truncate为true,并且字符串的size()大于width,则结果字符串在位置width处被截断。<br /> QString str = “Pineapple”;<br /> str = str.rightJustified(5, ‘.’, true); // str == “Pinea”<br /> 另请参见leftJustified()。<br /> QStringRef QString::rightRef(int n) const<br /> 返回对字符串的n个最右字符的子字符串引用。<br /> 如果n大于或等于size()或小于零,则返回对整个字符串的引用。<br /> QString x = “Pineapple”;<br /> QStringRef y = x.rightRef(5); // y == “apple”<br /> 功能在Qt 4.4中引入。<br /> 另请参见right(),leftRef(),midRef()和endsWith()。<br /> QString QString::section(QChar sep, int start, int end = …, QString::SectionFlags flags =SectionDefault) const<br /> 此函数返回字符串的一部分。<br /> 该字符串被视为由字符sep分隔的一系列字段。返回的字符串包含从位置开始到位置结束(包括首尾)的字段。如果未指定end,则包括从位置start到字符串结尾的所有字段。字段从左开始编号为0、1、2等,从右到左依次编号为-1,-2等。<br /> flags参数可用于影响函数行为的某些方面,例如是否区分大小写,是否跳过空白字段以及如何处理前导和尾随分隔符;参见SectionFlags。<br /> QString str;<br /> QString csv = “forename,middlename,surname,phone”;<br /> QString path = “/usr/local/bin/myapp”; // First field is empty<br /> QString::SectionFlag flag = QString::SectionSkipEmpty;</p> <pre><code>str = csv.section(',', 2, 2); // str == "surname" str = path.section('/', 3, 4); // str == "bin/myapp" str = path.section('/', 3, 3, flag); // str == "myapp" </code></pre> <p>如果start或end为负,则从字符串的右边开始计数字段,最右边的字段为-1,最右边的字段为-2,依此类推。<br /> str = csv.section(‘,’, -3, -2); // str == “middlename,surname”<br /> str = path.section(‘/’, -1); // str == “myapp”<br /> 另请参见split()。<br /> QString QString::section(const QString &sep, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const<br /> 此函数重载section()。<br /> QString str;<br /> QString data = “forename<strong>middlename</strong>surname**phone”;</p> <pre><code>str = data.section("**", 2, 2); // str == "surname" str = data.section("**", -3, -2); // str == "middlename**surname" </code></pre> <p>另请参见split()。<br /> QString QString::section(const QRegExp &reg, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const<br /> 此函数重载section()。<br /> 该字符串被视为由正则表达式reg分隔的一系列字段。<br /> QString line = “forename\tmiddlename surname \t \t phone”;<br /> QRegExp sep(“\s+”);<br /> str = line.section(sep, 2, 2); // str == “surname”<br /> str = line.section(sep, -3, -2); // str == “middlename surname”<br /> 告:使用此QRegExp版本比重载的字符串和字符版本要昂贵得多。<br /> 另请参见split()和simplified()。<br /> QString QString::section(const QRegularExpression &re, int start, int end=-1, QString::SectionFlags flags = SectionDefault) const<br /> 此函数重载section()。<br /> 该字符串被视为由正则表达式re分隔的一系列字段。<br /> QString line = “forename\tmiddlename surname \t \t phone”;<br /> QRegularExpression sep(“\s+”);<br /> str = line.section(sep, 2, 2); // str == “surname”<br /> str = line.section(sep, -3, -2); // str == “middlename surname”<br /> 警告:使用此QRegularExpression版本比重载的字符串和字符版本要昂贵得多。<br /> 此功能在Qt 5.0中引入。<br /> 另请参见split()和simplified()。<br /> QString &QString::setNum(int n, int base = 10)<br /> 将字符串设置为指定基数中n的打印值,并返回对该字符串的引用。<br /> 默认情况下,底数是10,并且必须在2到36之间。对于10以外的底数,n被视为无符号整数。<br /> QString str;<br /> str.setNum(1234); // str == “1234”<br /> 格式始终使用QLocale :: C,即英语/美国。要获取数字的本地化字符串表示形式,请使用带有适当语言环境的QLocale :: toString()。<br /> 另请参见number()。<br /> QString &QString::setNum(short n, int base = 10)<br /> 这是一个过载功能。<br /> QString &QString::setNum(ushort n, int base = 10)<br /> 这是一个过载功能。<br /> QString &QString::setNum(uint n, int base = 10)<br /> 这是一个过载功能。<br /> QString &QString::setNum(long n, int base = 10)<br /> 这是一个过载功能。<br /> QString &QString::setNum(ulong n, int base = 10)<br /> 这是一个过载功能。<br /> QString &QString::setNum(qlonglong n, int base = 10)<br /> 这是一个过载功能。<br /> QString &QString::setNum(qulonglong n, int base = 10)<br /> 这是一个过载功能。<br /> QString &QString::setNum(float n, char format = ‘g’, int precision = 6)<br /> 这是一个过载功能。<br /> 将字符串设置为打印值n,并根据给定的格式和精度对其进行格式化,然后返回对该字符串的引用。<br /> 格式始终使用QLocale :: C,即英语/美国。要获取数字的本地化字符串表示形式,请使用带有适当语言环境的QLocale :: toString()。<br /> 另请参见number()。<br /> QString &QString::setNum(double n, char format = ‘g’, int precision = 6)<br /> 这是一个过载功能。<br /> 将字符串设置为打印值n,并根据给定的格式和精度对其进行格式化,然后返回对该字符串的引用。<br /> 格式可以是“ e”,“ E”,“ f”,“ g”或“ G”(有关格式的说明,请参见参数格式)。<br /> 格式始终使用QLocale :: C,即英语/美国。要获取数字的本地化字符串表示形式,请使用带有适当语言环境的QLocale :: toString()。<br /> 另请参见number()。<br /> QString &QString::setRawData(const QChar *unicode, int size)<br /> 重置QString以使用数组unicode中的第一位Unicode字符。 unicode中的数据不会被复制。只要存在QString(或其未修改的副本),调用者就必须能够保证不会删除或修改unicode。<br /> 可以使用此函数代替fromRawData()来重用现有的QString对象,以节省内存的重新分配。<br /> 此功能在Qt 4.7中引入。</p> <p>另请参见fromRawData()。<br /> QString &QString::setUnicode(const QChar *unicode, int size)<br /> 调整字符串size以调整字符大小,然后将unicode复制到字符串中。<br /> 如果unicode为0,则不会复制任何内容,但仍将字符串调整为大小。<br /> 另请参见unicode()和setUtf16()。<br /> QString &QString::setUtf16(const ushort *unicode, int size)<br /> 调整字符串size以调整字符大小,然后将unicode复制到字符串中。<br /> 如果unicode为0,则不会复制任何内容,但仍将字符串调整为大小。<br /> 请注意,与fromUtf16()不同,此函数不考虑BOM表,并且可能不考虑字节顺序。<br /> 另请参见utf16()和setUnicode()。<br /> void QString::shrink_to_fit()<br /> 提供此功能是为了实现STL兼容性。它等效于squeeze()。<br /> 他的功能在Qt 5.10中引入。<br /> 另请参见squeeze()。<br /> QString QString::simplified() const<br /> 返回一个字符串,该字符串从开头和结尾删除了空格,并且内部空格的每个序列都被一个空格替换。<br /> 空格表示QChar :: isSpace()返回true的任何字符。这包括ASCII字符“ \ t”,“ \ n”,“ \ v”,“ \ f”,“ \ r”和“”。<br /> 例如:<br /> QString str = ” lots\t of\nwhitespace\r\n “;<br /> str = str.simplified();<br /> // str == “lots of whitespace”;<br /> 另请参见trimmed()。<br /> int QString::size() const<br /> 返回此字符串中的字符数。<br /> 字符串中的最后一个字符在位置size()-1。<br /> 例如:<br /> QString str = “World”;<br /> int n = str.size(); // n == 5<br /> str.data()[0]; // returns ‘W’<br /> str.data()[4]; // returns ‘d’<br /> 另请参见isEmpty()和resize()。<br /> QStringList QString::split(const QString &sep, QString::SplitBehavior behavior =KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 在sep出现的任何位置将字符串拆分为子字符串,并返回这些字符串的列表。如果sep与字符串中的任何地方都不匹配,则split()返回包含此字符串的单元素列表。<br /> cs指定sep应该区分大小写还是不区分大小写。<br /> 如果行为为QString :: SkipEmptyParts,则空条目不会出现在结果中。默认情况下,保留空条目。<br /> 例如:<br /> QString str = “a,,b,c”;</p> <pre><code>QStringList list1 = str.split(','); // list1: [ "a", "", "b", "c" ] QStringList list2 = str.split(',', QString::SkipEmptyParts); // list2: [ "a", "b", "c" ] </code></pre> <p>如果sep为空,则split()返回一个空字符串,然后是该字符串的每个字符,然后是另一个空字符串:<br /> QString str = “abc”;<br /> auto parts = str.split(“”);<br /> // parts: {“”, “a”, “b”, “c”, “”}<br /> 要了解此行为,请记住空字符串在任何地方都匹配,因此上述内容在质量上与以下内容相同:<br /> QString str = “/a/b/c/”;<br /> auto parts = str.split(‘/’);<br /> // parts: {“”, “a”, “b”, “c”, “”}<br /> 另请参见QStringList :: join()和section()。<br /> QStringList QString::split(QChar sep, QString::SplitBehavior behavior =KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 这是一个过载功能。<br /> QStringList QString::split(const QRegExp &rx, QString::SplitBehavior behavior = KeepEmptyParts) const<br /> 这是一个过载功能。<br /> 在正则表达式rx匹配的位置将字符串拆分为子字符串,并返回这些字符串的列表。如果rx与字符串中的任何地方都不匹配,则split()返回包含此字符串的单元素列表。<br /> 这是一个示例,其中我们使用一个或多个空格字符作为分隔符来提取句子中的单词:<br /> QString str;<br /> QStringList list;</p> <pre><code>str = "Some text\n\twith strange whitespace."; list = str.split(QRegExp("\\s+")); // list: [ "Some", "text", "with", "strange", "whitespace." ] </code></pre> <p>这是一个类似的示例,但是这次我们使用任何非单词字符序列作为分隔符:<br /> str = “This time, a normal English sentence.”;<br /> list = str.split(QRegExp(“\W+”), QString::SkipEmptyParts);<br /> // list: [ “This”, “time”, “a”, “normal”, “English”, “sentence” ]<br /> 这是第三个示例,其中我们使用零长度断言\ b(单词边界)将字符串分成非单词和单词标记的交替序列:<br /> str = “Now: this sentence fragment.”;<br /> list = str.split(QRegExp(“\b”));<br /> // list: [ “”, “Now”, “: “, “this”, ” “, “sentence”, ” “, “fragment”, “.” ]<br /> 另请参见QStringList :: join()和section()。<br /> QStringList QString::split(const QRegularExpression &re, QString::SplitBehavior behavior = KeepEmptyParts) const<br /> 这是一个过载功能。<br /> 只要正则表达式匹配,就将字符串拆分为子字符串,并返回这些字符串的列表。如果re在字符串中的任何地方都不匹配,则split()返回包含此字符串的单元素列表。<br /> 这是一个示例,其中我们使用一个或多个空格字符作为分隔符来提取句子中的单词:<br /> QString str;<br /> QStringList list;</p> <pre><code>str = "Some text\n\twith strange whitespace."; list = str.split(QRegularExpression("\\s+")); // list: [ "Some", "text", "with", "strange", "whitespace." ] </code></pre> <p>这是一个类似的示例,但是这次我们使用任何非单词字符序列作为分隔符:<br /> str = “This time, a normal English sentence.”;<br /> list = str.split(QRegularExpression(“\W+”), QString::SkipEmptyParts);<br /> // list: [ “This”, “time”, “a”, “normal”, “English”, “sentence” ]<br /> 这是第三个示例,其中我们使用零长度断言\ b(单词边界)将字符串分成非单词和单词标记的交替序列:<br /> str = “Now: this sentence fragment.”;<br /> list = str.split(QRegularExpression(“\b”));<br /> // list: [ “”, “Now”, “: “, “this”, ” “, “sentence”, ” “, “fragment”, “.” ]<br /> 此功能在Qt 5.0中引入。<br /> 另请参见QStringList :: join()和section()。<br /> QVectorQString::splitRef(const QString &sep, QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 在Sep出现的任何地方将字符串拆分为子字符串引用,并返回这些字符串的列表。<br /> 参见QString :: split()了解sep,行为和CS如何相互作用以形成结果。<br /> 注意:只要此字符串有效,所有引用均有效。销毁该字符串将导致所有引用悬空指针。<br /> 此功能在Qt 5.4中引入。<br /> 另请参见QStringRef和split()。<br /> QVectorQString::splitRef(QChar sep, QString::SplitBehavior behavior =KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 这是一个过载功能。<br /> 此功能在Qt 5.4中引入。<br /> QVectorQString::splitRef(const QRegExp &rx, QString::SplitBehavior behavior = KeepEmptyParts) const<br /> 这是一个过载功能。<br /> 在正则表达式rx匹配的任何位置将字符串拆分为子字符串引用,并返回这些字符串的列表。如果rx与字符串中的任何地方都不匹配,则splitRef()返回包含此字符串引用的单元素向量。<br /> 注意:只要此字符串有效,所有引用均有效。销毁该字符串将导致所有引用悬空指针。<br /> 此功能在Qt 5.4中引入。<br /> 另请参见QStringRef和split()。<br /> QVectorQString::splitRef(const QRegularExpression &re, QString::SplitBehavior behavior = KeepEmptyParts) const<br /> 这是一个过载功能。<br /> 在正则表达式重新匹配的位置将字符串拆分为子字符串引用,并返回这些字符串的列表。如果re在字符串中的任何地方都不匹配,则splitRef()返回包含此字符串引用的单元素向量。<br /> 注意:只要此字符串有效,所有引用均有效。销毁该字符串将导致所有引用悬空指针。<br /> 此功能在Qt 5.4中引入。<br /> 另请参见split()和QStringRef。<br /> void QString::squeeze()<br /> 释放存储字符数据不需要的任何内存。<br /> 此函数的唯一目的是提供一种微调QString的内存使用情况的方法。通常,您几乎不需要调用此函数。<br /> 另请参见reserve()和Capacity()。<br /> bool QString::startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 如果字符串以s开头,则返回true;否则返回false。否则返回false。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> QString str = “Bananas”;<br /> str.startsWith(“Ban”); // returns true<br /> str.startsWith(“Car”); // returns false<br /> 另请参见endsWith()。<br /> bool QString::startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 这是一个过载功能。<br /> 如果字符串以字符串引用s开头,则返回true;否则返回true。否则返回false。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 此功能在Qt 4.8中引入。<br /> 另请参见endsWith()。<br /> bool QString::startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 这是一个过载功能。<br /> 如果字符串以string-view str开头,则返回true;否则,返回true。否则返回false。<br /> 如果cs是Qt :: CaseSensitive(默认),则搜索区分大小写;否则,搜索不区分大小写。否则,搜索不区分大小写。<br /> 此功能在Qt 5.10中引入。<br /> 另请参见endsWith()。<br /> bool QString::startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载startsWith()。<br /> bool QString::startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const<br /> 此函数重载startsWith()。<br /> 如果字符串以c开头,则返回true;否则返回false。否则返回false。<br /> void QString::swap(QString &other)<br /> 用此字符串交换其他字符串。此操作非常快,并且永远不会失败。<br /> 此功能在Qt 4.8中引入。<br /> CFStringRef QString::toCFString() const<br /> 从QString创建CFString。调用者拥有CFString并负责释放它。<br /> 注意:此功能仅在OS X和iOS上可用。<br /> 此功能在Qt 5.2中引入。<br /> QString QString::toCaseFolded() const<br /> 返回与字符串等效的大小写折叠。对于大多数Unicode字符,这与toLower()相同。<br /> double QString::toDouble(bool <em>ok = nullptr) const<br /> 返回转换为双精度值的字符串。<br /> 如果转换溢出,则返回无穷大;如果转换由于其他原因而失败(例如下溢),则返回无穷大。<br /> 如果ok不是nullptr,则通过将</em> ok设置为false来报告失败,而通过将* ok设置为true来报告成功。<br /> QString str = “1234.56”;<br /> double val = str.toDouble(); // val == 1234.56<br /> 警告:QString内容只能包含有效的数字字符,包括加/减号,科学计数法中使用的字符e和小数点。包含单位或其他字符会导致转换错误。<br /> bool ok;<br /> double d;</p> <pre><code>d = QString( "1234.56e-02" ).toDouble(&amp;ok); // ok == true, d == 12.3456 d = QString( "1234.56e-02 Volt" ).toDouble(&amp;ok); // ok == false, d == 0 </code></pre> <p>字符串转换将始终在“ C”区域设置中进行。对于与语言环境相关的转换,请使用QLocale :: toDouble()<br /> d = QString( “1234,56” ).toDouble(&ok); // ok == false<br /> d = QString( “1234.56” ).toDouble(&ok); // ok == true, d == 1234.56<br /> 由于历史原因,此功能无法处理数千个组分隔符。如果需要转换此类数字,请使用QLocale :: toDouble()。<br /> d = QString( “1,234,567.89” ).toDouble(&ok); // ok == false<br /> d = QString( “1234567.89” ).toDouble(&ok); // ok == true<br /> 此函数忽略前导和尾随空格。<br /> 另请参见number(),QLocale :: setDefault(),QLocale :: toDouble()和trimmed()。<br /> float QString::toFloat(bool <em>ok = nullptr) const<br /> 返回转换为浮点值的字符串。<br /> 如果转换溢出,则返回无穷大;如果转换由于其他原因而失败(例如下溢),则返回无穷大。<br /> 如果ok不是nullptr,则通过将</em> ok设置为false来报告失败,而通过将* ok设置为true来报告成功。<br /> 警告:QString内容只能包含有效的数字字符,包括加/减号,科学计数法中使用的字符e和小数点。包含单位或其他字符会导致转换错误。<br /> 字符串转换将始终在“ C”区域设置中进行。对于与语言环境相关的转换,请使用QLocale :: toFloat()<br /> 由于历史原因,此功能无法处理数千个组分隔符。如果需要转换此类数字,请使用QLocale :: toFloat()。<br /> 例如:<br /> QString str1 = “1234.56”;<br /> str1.toFloat(); // returns 1234.56</p> <pre><code>bool ok; QString str2 = "R2D2"; str2.toFloat(&amp;ok); // returns 0.0, sets ok to false QString str3 = "1234.56 Volt"; str3.toFloat(&amp;ok); // returns 0.0, sets ok to false </code></pre> <p>此函数忽略前导和尾随空格。<br /> 另请参见number(),toDouble(),toInt(),QLocale :: toFloat()和trimmed()。<br /> QString QString::toHtmlEscaped() const<br /> 将纯文本字符串转换为HTML字符串,其中HTML元字符,&和“被HTML实体替换。<br /> 例如:<br /> QString plain = “#include ”<br /> QString html = plain.toHtmlEscaped();<br /> // html == “#include <QtCore>”<br /> 此功能在Qt 5.0中引入。<br /> int QString::toInt(bool <em>ok = nullptr, int base = 10) const<br /> 返回使用base base转换为int的字符串,默认情况下为10,且必须介于2到36之间,或者为0。如果转换失败,则返回0。<br /> 如果ok不是nullptr,则通过将</em> ok设置为false来报告失败,而通过将* ok设置为true来报告成功。<br /> 如果base为0,则使用C语言约定:如果字符串以“ 0x”开头,则使用base 16;否则,使用16。如果字符串以“ 0”开头,则以8为底。否则,使用基数10。<br /> 字符串转换将始终在“ C”区域设置中进行。对于与语言环境相关的转换,请使用QLocale :: toInt()。<br /> 例如:<br /> QString str = “FF”;<br /> bool ok;<br /> int hex = str.toInt(&ok, 16); // hex == 255, ok == true<br /> int dec = str.toInt(&ok, 10); // dec == 0, ok == false<br /> 此函数忽略前导和尾随空格。<br /> 另请参见number(),toUInt(),toDouble()和QLocale :: toInt()。<br /> QByteArray QString::toLatin1() const<br /> 以QByteArray形式返回字符串的Latin-1表示形式。<br /> 如果字符串包含非Latin1字符,则返回的字节数组是不确定的。这些字符可能会被禁止显示或被问号代替。<br /> 另请参见fromLatin1(),toUtf8(),toLocal8Bit()和QTextCodec。<br /> QByteArray QString::toLocal8Bit() const<br /> 以QByteArray形式返回字符串的本地8位表示形式。如果字符串包含本地8位编码不支持的字符,则返回的字节数组是不确定的。<br /> QTextCodec :: codecForLocale()用于执行从Unicode的转换。如果无法确定语言环境编码,则此函数与toLatin1()相同。<br /> 如果此字符串包含无法在语言环境中编码的任何字符,则返回的字节数组未定义。这些字符可能被抑制或被其他字符替换。<br /> 另请参见fromLocal8Bit(),toLatin1(),toUtf8()和QTextCodec。<br /> long QString::toLong(bool <em>ok =nullptr, int base = 10) const<br /> 返回使用基数基数转换为long的字符串,默认情况下为10,且必须在2到36之间,或者为0。如果转换失败,则返回0。<br /> 如果ok不是nullptr,则通过将</em> ok设置为false来报告失败,而通过将* ok设置为true来报告成功。<br /> 如果base为0,则使用C语言约定:如果字符串以“ 0x”开头,则使用base 16;否则,使用16。如果字符串以“ 0”开头,则以8为底。否则,使用基数10。<br /> 字符串转换将始终在“ C”区域设置中进行。对于与语言环境相关的转换,请使用QLocale :: toLongLong()。<br /> 例如:<br /> QString str = “FF”;<br /> bool ok;</p> <pre><code>long hex = str.toLong(&amp;ok, 16); // hex == 255, ok == true long dec = str.toLong(&amp;ok, 10); // dec == 0, ok == false </code></pre> <p>此函数忽略前导和尾随空格。<br /> 另请参见number(),toULong(),toInt()和QLocale :: toInt()。<br /> qlonglong QString::toLongLong(bool <em>ok = nullptr, int base = 10) const<br /> 返回使用base base转换为long long的字符串,默认情况下为10,且必须介于2到36之间,或者为0。如果转换失败,则返回0。<br /> 如果ok不是nullptr,则通过将</em> ok设置为false来报告失败,而通过将* ok设置为true来报告成功。<br /> 如果base为0,则使用C语言约定:如果字符串以“ 0x”开头,则使用base 16;否则,使用16。如果字符串以“ 0”开头,则以8为底。否则,使用基数10。<br /> 字符串转换将始终在“ C”区域设置中进行。对于与语言环境相关的转换,请使用QLocale :: toLongLong()<br /> 例如:<br /> QString str = “FF”;<br /> bool ok;</p> <pre><code>qint64 hex = str.toLongLong(&amp;ok, 16); // hex == 255, ok == true qint64 dec = str.toLongLong(&amp;ok, 10); // dec == 0, ok == false </code></pre> <p>此函数忽略前导和尾随空格。<br /> 另请参见number(),toULongLong(),toInt()和QLocale :: toLongLong()。<br /> QString QString::toLower() const<br /> 返回字符串的小写副本。<br /> QString str = “The Qt PROJECT”;<br /> str = str.toLower(); // str == “the qt project”<br /> 大小写转换将始终在“ C”区域设置中进行。对于与语言环境相关的大小写折叠,请使用QLocale :: toLower()<br /> 另请参见toUpper()和QLocale :: toLower()。<br /> NSString <em>QString::toNSString() const<br /> 从QString创建一个NSString。 NSString被自动释放。<br /> 此功能仅在OS X和iOS上可用。<br /> 此功能在Qt 5.2中引入。<br /> short QString::toShort(bool *ok =nullptr, int base = 10) const<br /> 返回使用base base转换为short的字符串,默认情况下为10,且必须介于2到36之间,或者为0。如果转换失败,则返回0。<br /> 如果ok不是nullptr,则通过将</em> ok设置为false来报告失败,而通过将* ok设置为true来报告成功。<br /> 如果base为0,则使用C语言约定:如果字符串以“ 0x”开头,则使用base 16;否则,使用16。如果字符串以“ 0”开头,则以8为底。否则,使用基数10。<br /> 字符串转换将始终在“ C”区域设置中进行。对于与语言环境相关的转换,请使用QLocale :: toShort()。<br /> 例如:<br /> QString str = “FF”;<br /> bool ok;</p> <pre><code>short hex = str.toShort(&amp;ok, 16); // hex == 255, ok == true short dec = str.toShort(&amp;ok, 10); // dec == 0, ok == false </code></pre> <p>此函数忽略前导和尾随空格。<br /> 另请参见number(),toUShort(),toInt()和QLocale :: toShort()。<br /> std::string QString::toStdString() const<br /> 返回带有此QString中包含的数据的std :: string对象。使用toUtf8()函数将Unicode数据转换为8位字符。<br /> 此方法对于将QString传递给接受std :: string对象的函数很有用。<br /> 另请参见toLatin1(),toUtf8(),toLocal8Bit()和QByteArray :: toStdString()。<br /> std::u16string QString::toStdU16String() const<br /> 返回带有此QString中包含的数据的std :: u16string对象。 Unicode数据与utf16()方法返回的数据相同。<br /> 此功能在Qt 5.5中引入。<br /> 另请参见utf16(),toStdWString()和toStdU32String()。<br /> std::u32string QString::toStdU32String() const<br /> 返回带有此QString中包含的数据的std :: u32string对象。 Unicode数据与toUcs4()方法返回的数据相同。<br /> 此功能在Qt 5.5中引入。<br /> 另请参见toUcs4(),toStdWString()和toStdU16String()。<br /> std::wstring QString::toStdWString() const<br /> 返回带有此QString中包含的数据的std :: wstring对象。在wchar_t为2字节宽的平台(例如Windows)上,在utf16中编码std :: wstring;在wchar_t为4字节宽的平台(大多数Unix系统)上,在ucs4中编码。<br /> 此方法对于将QString传递给接受std :: wstring对象的函数很有用。<br /> 另请参见utf16(),toLatin1(),toUtf8(),toLocal8Bit(),toStdU16String()和toStdU32String()。<br /> uint QString::toUInt(bool <em>ok = nullptr, int base = 10) const<br /> 返回使用base base转换为unsigned int的字符串,默认值为10,且必须介于2到36之间,或者为0。如果转换失败,则返回0。<br /> 如果ok不是nullptr,则通过将</em> ok设置为false来报告失败,而通过将* ok设置为true来报告成功。<br /> 如果base为0,则使用C语言约定:如果字符串以“ 0x”开头,则使用base 16;否则,使用16。如果字符串以“ 0”开头,则以8为底。否则,使用基数10。<br /> 字符串转换将始终在“ C”区域设置中进行。对于与语言环境相关的转换,请使用QLocale :: toUInt()<br /> 例如:<br /> QString str = “FF”;<br /> bool ok;</p> <pre><code>uint hex = str.toUInt(&amp;ok, 16); // hex == 255, ok == true uint dec = str.toUInt(&amp;ok, 10); // dec == 0, ok == false </code></pre> <p>此函数忽略前导和尾随空格。<br /> 另请参见number(),toInt()和QLocale :: toUInt()。<br /> ulong QString::toULong(bool <em>ok =nullptr, int base = 10) const<br /> 返回使用基数base转换为无符号长整数的字符串,默认情况下为10,且必须介于2到36之间,或者为0。如果转换失败,则返回0。<br /> 如果ok不是nullptr,则通过将</em> ok设置为false来报告失败,而通过将* ok设置为true来报告成功。<br /> 如果base为0,则使用C语言约定:如果字符串以“ 0x”开头,则使用base 16;否则,使用16。如果字符串以“ 0”开头,则以8为底。否则,使用基数10。<br /> 字符串转换将始终在“ C”区域设置中进行。对于与语言环境相关的转换,请使用QLocale :: toULongLong()。<br /> 例如:<br /> QString str = “FF”;<br /> bool ok;</p> <pre><code>ulong hex = str.toULong(&amp;ok, 16); // hex == 255, ok == true ulong dec = str.toULong(&amp;ok, 10); // dec == 0, ok == false </code></pre> <p>此函数忽略前导和尾随空格。<br /> 另请参见number()和QLocale :: toUInt()。<br /> qulonglong QString::toULongLong(bool <em>ok = nullptr, int base = 10) const<br /> 返回使用base base转换为无符号long long的字符串,默认情况下为10,且必须介于2到36之间,或者为0。如果转换失败,则返回0。<br /> 如果ok不是nullptr,则通过将</em> ok设置为false来报告失败,而通过将* ok设置为true来报告成功。<br /> 如果base为0,则使用C语言约定:如果字符串以“ 0x”开头,则使用base 16;否则,使用16。如果字符串以“ 0”开头,则以8为底。否则,使用基数10。<br /> 字符串转换将始终在“ C”区域设置中进行。对于与语言环境相关的转换,请使用QLocale :: toULongLong()<br /> 例如:<br /> QString str = “FF”;<br /> bool ok;</p> <pre><code>quint64 hex = str.toULongLong(&amp;ok, 16); // hex == 255, ok == true quint64 dec = str.toULongLong(&amp;ok, 10); // dec == 0, ok == false </code></pre> <p>此函数忽略前导和尾随空格。<br /> 另请参见number(),toLongLong()和QLocale :: toULongLong()。<br /> ushort QString::toUShort(bool <em>ok =nullptr, int base = 10) const<br /> 返回使用base base转换为无符号short的字符串,默认为10,且必须介于2到36之间,或者为0。如果转换失败,则返回0。<br /> 如果ok不是nullptr,则通过将</em> ok设置为false来报告失败,而通过将* ok设置为true来报告成功。<br /> 如果base为0,则使用C语言约定:如果字符串以“ 0x”开头,则使用base 16;否则,使用16。如果字符串以“ 0”开头,则以8为底。否则,使用基数10。<br /> 字符串转换将始终在“ C”区域设置中进行。对于与语言环境相关的转换,请使用QLocale :: toUShort()<br /> 例如:<br /> QString str = “FF”;<br /> bool ok;</p> <pre><code>ushort hex = str.toUShort(&amp;ok, 16); // hex == 255, ok == true ushort dec = str.toUShort(&amp;ok, 10); // dec == 0, ok == false </code></pre> <p>此函数忽略前导和尾随空格。<br /> 另请参见number(),toShort()和QLocale :: toUShort()。<br /> QVector QString::toUcs4() const<br /> 以QVector 的形式返回字符串的UCS-4 / UTF-32表示形式。<br /> UCS-4是Unicode编解码器,因此它是无损的。该字符串中的所有字符都将以UCS-4编码。此字符串中任何无效的代码单元序列都将被Unicode的替换字符(QChar :: ReplacementCharacter所对应,它对应于U + FFFD)替换。<br /> 返回的向量不是’\ 0’终止的。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见fromUtf8(),toUtf8(),toLatin1(),toLocal8Bit(),QTextCodec,fromUcs4()和toWCharArray()。<br /> QString QString::toUpper() const<br /> 返回字符串的大写副本。<br /> QString str = “TeXt”;<br /> str = str.toUpper(); // str == “TEXT”<br /> 大小写转换将始终在“ C”区域设置中进行。对于与<br /> 语言环境相关的大小写折叠,请使用QLocale :: toUpper()<br /> 另请参见toLower()和QLocale :: toLower()。<br /> QByteArray QString::toUtf8() const<br /> 以QByteArray形式返回字符串的UTF-8表示形式。<br /> UTF-8是Unicode编解码器,可以表示Unicode字符串(如QString)中的所有字符。<br /> 另请参见fromUtf8(),toLatin1(),toLocal8Bit()和QTextCodec。<br /> int QString::toWCharArray(wchar_t <em>array) const<br /> 用此QString对象中包含的数据填充array。在wchar_t为2字节宽的平台(例如Windows)上,该数组以UTF-16编码;在wchar_t为4字节宽的平台(大多数Unix系统)上,以UCS-4编码。<br /> array必须由调用方分配,并包含足够的空间来容纳完整的字符串(以与字符串相同的长度分配数组总是足够的)。<br /> 此函数返回数组中字符串的实际长度。<br /> 注意:此函数不会将空字符附加到数组。<br /> 功能在Qt 4.2中引入。<br /> 另请参见utf16(),toUcs4(),toLatin1(),toUtf8(),toLocal8Bit(),toStdWString()和QStringView :: toWCharArray()。<br /> QString QString::trimmed() const<br /> 返回从开头和结尾删除空格的字符串。<br /> 空格表示QChar :: isSpace()返回true的任何字符。这包括ASCII字符 ‘\t’, ‘\n’, ‘\v’, ‘\f’, ‘\r’, 和 ‘ ‘.<br /> 例如:<br /> QString str = ” lots\t of\nwhitespace\r\n “;<br /> str = str.trimmed();<br /> // str == “lots\t of\nwhitespace”<br /> 与simpleized()不同,trimmed()仅保留内部空白。<br /> 另请参见 simplified().<br /> void QString::truncate(int position)<br /> 在给定位置索引处截断字符串。<br /> 如果指定的位置索引超出字符串的末尾,则不会发生任何事情。<br /> 例如:<br /> QString str = “Vladivostok”;<br /> str.truncate(4);<br /> // str == “Vlad”<br /> 如果position为负,则等于传递零。<br /> 另请参见chop(),resize(),left()和QStringRef :: truncate()。<br /> const QChar *QString::unicode() const<br /> 返回字符串的Unicode表示形式。在字符串被修改之前,结果一直有效。<br /> 注意:返回的字符串不能以’\ 0’结尾。使用size()确定数组的长度。<br /> 另请参见setUnicode(),utf16()和fromRawData()。<br /> const ushort *QString::utf16() const<br /> 将QString返回为以’\ 0’终止的无符号短裤数组。在字符串被修改之前,结果一直有效。<br /> 返回的字符串按主机字节顺序。<br /> 另请参见setUtf16()和unicode()。<br /> QString QString::vasprintf(const char *cformat, va_list ap)<br /> 与asprintf()等效的方法,但采用va_list ap代替变量参数列表。有关cformat的说明,请参见asprintf()文档。<br /> 此方法不调用va_end宏,调用方负责在ap上调用va_end。<br /> 此功能在Qt 5.5中引入。<br /> 另请参见asprintf()。<br /> bool QString::operator!=(QLatin1String other) const<br /> 如果此字符串不等于参数字符串other,则返回true。否则返回false。<br /> 此函数重载operator!=()。<br /> bool QString::operator!=(const char *other) const<br /> 此函数重载operator!=()。<br /> 使用fromUtf8()函数将const char</em>other转换为QString。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此运算符。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> bool QString::operator!=(const QByteArray &other) const<br /> 此函数重载operator!=()。<br /> 使用fromUtf8()函数将other字节数组转换为QString。如果在字节数组中嵌入了任何NUL字符(’\ 0’),则它们将包含在转换中。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此运算符。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> QString &QString::operator+=(QChar ch)<br /> 此函数重载operator + =()。<br /> 将字符ch附加到字符串。<br /> QString &QString::operator+=(const QString &other)<br /> 将other字符串附加到该字符串的末尾,并返回对该字符串的引用。<br /> 例如:<br /> QString x = “free”;<br /> QString y = “dom”;<br /> x += y;<br /> // x == “freedom”<br /> 此操作通常非常快(恒定时间),因为QString在字符串数据的末尾预分配了额外的空间,因此它可以增长而不必每次都重新分配整个字符串。<br /> 另请参见append()和prepend()。<br /> QString &QString::operator+=(const QStringRef &str)<br /> 此函数重载operator + =()。<br /> 将str引用的字符串部分追加到此字符串。<br /> QString &QString::operator+=(QLatin1String str)<br /> 此函数重载operator + =()。<br /> 将Latin-1字符串str附加到此字符串。<br /> QString &QString::operator+=(const char <em>str)<br /> 此函数重载operator + =()。<br /> 将字符串str追加到此字符串。使用fromUtf8()函数将const char指针转换为Unicode。<br /> 您可以在编译应用程序时通过定义QT_NO_CAST_FROM_ASCII来禁用此功能。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> QString &QString::operator+=(const QByteArray &ba)<br /> 此函数重载operator + =()。<br /> 将字节数组ba附加到此字符串。使用fromUtf8()函数将字节数组转换为Unicode。如果在ba字节数组中嵌入了任何NUL字符(’\ 0’),则它们将包含在转换中。<br /> 您可以在编译应用程序时通过定义QT_NO_CAST_FROM_ASCII来禁用此功能。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> QString &QString::operator+=(char ch)<br /> 此函数重载operator + =()。<br /> 将字符ch附加到此字符串。请注意,该字符使用fromLatin1()函数转换为Unicode,这与对UTF-8数据进行操作的其他8位函数不同。<br /> 您可以在编译应用程序时通过定义QT_NO_CAST_FROM_ASCII来禁用此功能。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> bool QString::operator<(QLatin1String other) const<br /> 此函数重载operator <()。<br /> 如果此字符串在词法上小于称为other的参数字符串,则返回true;否则返回true。否则返回false。<br /> bool QString::operator<(const char *other) const<br /> 如果此字符串在词法上小于other字符串,则返回true。否则返回false。<br /> 此函数重载operator <()。<br /> 使用fromUtf8()函数将const char</em>other转换为QString。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此运算符。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> bool QString::operator<(const QByteArray &other) const<br /> 此函数重载operator <()。<br /> 使用fromUtf8()函数将other字节数组转换为QString。如果在字节数组中嵌入了任何NUL字符('\ 0'),则它们将包含在转换中。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此运算符。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> bool QString::operator<=(QLatin1String other) const<br /> 如果此字符串在词法上小于或等于参数字符串other,则返回true。否则返回false。<br /> 此函数重载operator <=()。<br /> bool QString::operator<=(const char <em>other) const<br /> 此函数重载operator <=()。<br /> 使用fromUtf8()函数将const char</em> other转换为QString。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此运算符。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> bool QString::operator<=(const QByteArray &other) const<br /> 此函数重载operator (QLatin1String other) const<br /> 此函数重载operator>()。<br /> 如果此字符串在词法上大于参数字符串other,则返回true;否则,返回false<br /> bool QString::operator>(const char <em>other) const<br /> 此函数重载operator>()。<br /> 使用fromUtf8()函数将const char</em>other转换为QString。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此运算符。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> bool QString::operator>(const QByteArray &other) const<br /> 此函数重载operator>()。<br /> 使用fromUtf8()函数将other字节数组转换为QString。如果在字节数组中嵌入了任何NUL字符(’\ 0’),则它们将包含在转换中。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此运算符。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> bool QString::operator>=(QLatin1String other) const<br /> 如果此字符串在词法上大于或等于参数字符串other,则返回true。否则返回false。<br /> 此函数重载operator> =()。<br /> bool QString::operator>=(const char <em>other) const<br /> 此函数重载operator> =()。<br /> 使用fromUtf8()函数将const char</em>other转换为QString。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此运算符。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> bool QString::operator>=(const QByteArray &other) const<br /> 此函数重载operator> =()。<br /> 使用fromUtf8()函数将other字节数组转换为QString。如果在字节数组中嵌入了任何NUL字符(’\ 0’),则它们将包含在转换中。<br /> 编译应用程序时,可以通过定义QT_NO_CAST_FROM_ASCII来禁用此运算符。例如,如果要确保所有用户可见的字符串都通过QObject :: tr(),则此功能很有用。<br /> 另请参见QT_NO_CAST_FROM_ASCII。<br /> QCharRef QString::operator[](int position)<br /> 返回字符串中指定的字符position作为可修改的引用。<br /> 例如:<br /> QString str;</p> <pre><code>if (str[0] == QChar('?')) str[0] = QChar('_'); </code></pre> <p>返回值是QCharRef类型,它是QString的帮助程序类。当您获得类型为QCharRef的对象时,可以将其用作对QChar的引用。如果分配给它,则分配将应用于从中获取引用的QString中的字符。<br /> 注意:在Qt 5.14之前,可以使用此运算符在字符串的越界位置访问字符,然后分配给该位置,从而自动调整字符串的大小。此外,即使同时已复制了字符串(并且在进行复制时QCharRef仍保持活动状态),将值分配给返回的QCharRef也会导致字符串分离。这些行为已被弃用,并将在以后的Qt版本中进行更改。<br /> 另请参见at()。<br /> const QChar QString::operator[](int position) const<br /> 此函数重载operator []()。<br /> const QChar QString::operator[](uint position) const<br /> 等效于at(position)。<br /> 此函数重载operator []()。<br /> QCharRef QString::operator[](uint position)<br /> 此函数重载operator []()。<br /> 返回字符串中指定的字符position作为可修改的引用。Related Non-Members<br /> bool operator!=(const QString &s1,const QString &s2)<br /> 如果字符串s1不等于字符串s2,则返回true;否则返回false。<br /> 这种比较仅基于字符的Unicode数字值,并且比较快,但不是人们期望的。考虑使用localeAwareCompare()对用户界面字符串进行排序。<br /> bool operator!=(const char *s1,const QString &s2)<br /> 如果s1不等于s2,则返回true;否则返回false。<br /> 对于s1!= 0,这等效于compare(s1,s2)!=0。请注意,没有字符串等于s1为0。<br /> const QString operator+(const QString &s1, const QString &s2)<br /> 返回一个字符串,该字符串是s1和s2串联的结果。<br /> const QString operator+(const QString &s1, const char *s2)<br /> 返回一个字符串,该字符串是s1和s2串联的结果(使用QString :: fromUtf8()函数将s2转换为Unicode)。<br /> 另请参见QString :: fromUtf8()。<br /> const QString operator+(const char *s1, const QString &s2)<br /> 返回一个字符串,该字符串是s1和s2串联的结果(使用QString :: fromUtf8()函数将s1转换为Unicode)。<br /> 另请参见QString :: fromUtf8()。<br /> const QString operator+(char ch,const QString &s)<br /> 返回一个字符串,该字符串是将字符ch和字符串s连接在一起的结果。<br /> const QString operator+(const QString &s, char ch)<br /> 返回一个字符串,该字符串是将字符串s和字符ch连接在一起的结果。<br /> bool operator<(const QString &s1,const QString &s2)<br /> 如果字符串s1在词法上小于字符串s2,则返回true否则返回false。<br /> 这种比较仅基于字符的Unicode数字值,并且比较快,但不是人们期望的。考虑使用QString :: localeAwareCompare()函数对用户界面字符串进行排序。<br /> bool operator<(const char *s1,const QString &s2)<br /> 如果s1在词法上小于s2,则返回true;否则返回false。对于s1!= 0,这等效于compare(s1,s2)<0。<br /> 这种比较仅基于字符的Unicode数字值,并且比较快,但不是人们期望的。考虑使用QString :: localeAwareCompare()函数对用户界面字符串进行排序。<br /> QDataStream &operator<<(QDataStream &stream, const QString &string)<br /> 将给定的string写入指定的stream。<br /> 另请参见 Serializing Qt Data Types.。<br /> bool operator<=(const QString &s1,const QString &s2)<br /> 如果字符串s1在词法上小于或等于字符串s2,则返回true;否则返回false。<br /> 这种比较仅基于字符的Unicode数字值,并且比较快,但不是人们期望的。考虑使用localeAwareCompare()对用户界面字符串进行排序。<br /> bool operator<=(const char *s1,const QString &s2)<br /> 如果s1在词法上小于或等于s2,则返回true;否则返回false。对于s1!= 0,这等效于compare(s1,s2)(const QString &s1,const QString &s2)<br /> 如果字符串s1在词法上大于字符串s2,则返回true;否则返回false。<br /> 这种比较仅基于字符的Unicode数字值,并且比较快,但不是人们期望的。考虑使用localeAwareCompare()对用户界面字符串进行排序<br /> bool operator>(const char *s1,const QString &s2)<br /> 如果s1在词法上大于s2,则返回true;否则返回false。等效于compare(s1,s2)> 0。<br /> 这种比较仅基于字符的Unicode数字值,并且比较快,但不是人们期望的。考虑使用QString :: localeAwareCompare()函数对用户界面字符串进行排序。<br /> bool operator>=(const QString &s1,const QString &s2)<br /> 如果字符串s1在词法上大于或等于字符串s2,则返回true;否则返回false。<br /> 这种比较仅基于字符的Unicode数字值,并且比较快,但不是人们期望的。考虑使用localeAwareCompare()对用户界面字符串进行排序。<br /> bool operator>=(const char *s1,const QString &s2)<br /> 如果s1在词法上大于或等于s2,则返回true;否则返回false。对于s1!= 0,这等效于compare(s1,s2)> = 0。<br /> 这种比较仅基于字符的Unicode数字值,并且比较快,但不是人们期望的。考虑使用QString :: localeAwareCompare()函数对用户界面字符串进行排序。<br /> QDataStream &operator>>(QDataStream &stream, QString &string)<br /> 从指定的流中将字符串读取到给定的string中。<br /> 另请参见 Serializing Qt Data Types.</p> <p>Macro Documentation<br /> QStringLiteral(str)<br /> 宏在编译时从字符串文字str中为QString生成数据。在这种情况下,可以从中免费创建QString,并且将生成的字符串数据存储在已编译目标文件的只读段中。<br /> 如果您的代码如下所示:<br /> // hasAttribute takes a QString argument<br /> if (node.hasAttribute(“http-contents-length”)) //…<br /> 然后将创建一个临时QString作为hasAttribute函数参数传递。这可能会非常昂贵,因为它涉及内存分配以及将数据复制/转换为QString的内部编码。<br /> 通过使用QStringLiteral可以避免此成本:<br /> if (node.hasAttribute(QStringLiteral(u”http-contents-length”))) //…<br /> 在这种情况下,QString的内部数据将在编译时生成。在运行时不会发生任何转换或分配。<br /> 使用QStringLiteral而不是用双引号引起来的纯C ++字符串文字可以显着加快根据编译时已知的数据创建QString实例的速度。<br /> 注意:当将字符串传递给具有重载QLatin1String的函数时,QLatin1String仍比QStringLiteral更有效,并且此重载可避免转换为QString。例如,QString :: operator ==()可以直接与QLatin1String进行比较:<br /> if (attribute.name() == QLatin1String(“http-contents-length”)) //…<br /> 注意:某些编译器的bug编码字符串包含US-ASCII字符集以外的字符。在这种情况下,请确保在字符串前加上u。否则是可选的。<br /> 另请参见QByteArrayLiteral。<br /> QT_NO_CAST_FROM_ASCII<br /> 禁用从8位字符串(char *)到Unicode QStrings的自动转换<br /> 另请参见QT_NO_CAST_TO_ASCIIQT_RESTRICTED_CAST_FROM_ASCII和QT_NO_CAST_FROM_BYTEARRAY。<br /> QT_NO_CAST_TO_ASCII<br /> 禁用从QString到8位字符串(char *)的自动转换<br /> 另请参见QT_NO_CAST_TO_ASCIIQT_RESTRICTED_CAST_FROM_ASCII和QT_NO_CAST_FROM_BYTEARRAY。<br /> QT_RESTRICTED_CAST_FROM_ASCII<br /> 定义此宏将禁用从源文字和8位数据到Unicode QString的大多数自动转换,但允许使用QChar(char)和QString(const char(&ch)[N]构造函数,以及QString :: operator =( const char(&ch)[N])赋值运算符,提供了QT_NO_CAST_FROM_ASCII的大多数类型安全优点,但不需要用户代码使用QLatin1Char,QLatin1String或类似字符包装字符和字符串文字。<br /> 未定义将此宏与7位范围以外的源字符串,非文字或带有嵌入式NUL字符的文字一起使用。<br /> 另请参见QT_NO_CAST_FROM_ASCII和QT_NO_CAST_TO_ASCII。</p> </div> </article> <article itemscope itemtype="http://schema.org/Article" id="post-7891" class="post-7891 post type-post status-publish format-standard hentry category-qt"> <header class="entry-header"> <h2 class="entry-title" itemprop="name"> <a itemprop="url" href="http://wiki.xuetang9.com/?p=7891" title="链向QScrollBar 类(老九学堂C++会员友情翻译,不喜勿喷)的固定链接" rel="bookmark">QScrollBar 类(老九学堂C++会员友情翻译,不喜勿喷)</a> </h2> <div class="entry-meta"><span class="entry-date"><a href="http://wiki.xuetang9.com/?p=7891" rel="bookmark"><time class="entry-date published" datetime="2020-05-27T14:16:58+08:00" itemprop="datepublished">5月 27, 2020</time></a></span> by <span class="author vcard" itemscope itemprop="author" itemtype="http://schema.org/Person"><a class="url fn n" href="http://wiki.xuetang9.com/?author=2889" rel="author" itemprop="url"><span itemprop="name">arklis</span></a></span><span class="sep">·</span><span class="comments-link"><a href="http://wiki.xuetang9.com/?p=7891#respond" itemprop="discussionUrl">0评论</a></span></div> </header> <div class="entry-content" itemprop="articleBody"> <p>QscrollBar 类<br /> Detailed Description – 内容描述<br /> 滚动条是一种控件,使用户能够访问文档中大于用于显示文档的窗口小部件的部分。 它提供了用户在文档中当前位置以及可见文档量的可视指示。 滚动条通常配有其他控件,可以实现更精确的导航。 Qt以适合每个平台的方式显示滚动条。<br /> 如果需要在另一个窗口小部件上提供滚动视图,则使用QScrollArea类可能更方便,因为它提供了视口窗口小部件和滚动条。 如果需要使用QAbstractScrollArea为专用小部件实现类似的功能,则QScrollBar很有用。 例如,如果您决定子类化QAbstractItemView。 对于使用滑块控件获取给定范围内的值的大多数其他情况,QSlider类可能更适合您的需求。<br /> <img src="http://wiki.xuetang9.com/wp-content/uploads/2020/05/timg-8.png" alt="" /><br /> 滚动条通常包括四个单独的控件:滑块,滚动箭头和页面控件。<br /> a. 块提供了一种快速转到文档任何部分的方法,但是不支持在大型文档中进行精确导航。</p> <p>b. 滚动箭头是按钮,可用于准确导航到文档中的特定位置。 对于连接到文本编辑器的垂直滚动条,这些滚动条通常将当前位置上移或下移一个“行”,并少量调整滑块的位置。 在编辑器和列表框中,“一行”可能表示一行文本; 在图像查看器中可能意味着20像素。</p> <p>C. 页面控件是在其上拖动滑块的区域(滚动条的背景)。 单击此处将滚动条移向单击一个“页面”。 该值通常与滑块的长度相同。<br /> 每个滚动条都有一个值,该值指示滑块与滚动条起点的距离。 这是通过value()获得的,并通过setValue()进行设置的。 此值始终在为滚动条定义的值的范围内,从minimum()到maximum()(包括两端)。 可以使用setMinimum()和setMaximum()设置可接受值的范围。 在最小值时,滑块的顶部边缘(对于垂直滚动条)或左边缘(对于水平滚动条)将在滚动条的顶部(或左侧)。 在最大值时,滑块的底部(或右侧)边缘将在滚动条的底部(或右侧)末端。<br /> 滑块的长度通常与页面步长有关,并且通常代表滚动视图中显示的文档区域的比例。 Page step是用户按下Page Up和Page Down键时值更改的量,并使用setPageStep()进行设置。 使用光标键对行步定义的值进行较小的更改,并使用setSingleStep()设置此数量。<br /> 请注意,所使用的值的范围与滚动条小部件的实际大小无关。 选择范围和页面步长的值时,无需考虑这一点。<br /> 为滚动条指定的值范围通常与为QSlider确定的值范围不同,因为需要考虑滑块的长度。 如果我们有一个包含100行的文档,并且在一个小部件中只能显示20行,则我们可能希望构建一个滚动条,其页面步长为20,最小值为0,最大值为80。 给我们一个带有五个“页面”的滚动条。<br /> <img src="http://wiki.xuetang9.com/wp-content/uploads/2020/05/timg-8.png" alt="" /><br /> 在许多常见情况下,文档长度,滚动条中使用的值范围和页面步进之间的关系很简单。 滚动条的值范围是通过从代表文档长度的某个值中减去选定的页面步长来确定的。 在这种情况下,以下等式很有用:文档长度= maximum()-minimum()+ pageStep()。<br /> QScrollBar仅提供整数范围。 请注意,尽管QScrollBar可以处理非常大的数字,但当前屏幕上的滚动条无法有效地表示约100,000像素以上的范围。 除此之外,用户变得难以使用键盘或鼠标来控制滑块,并且滚动箭头的使用将受到限制。<br /> ScrollBar从QAbstractSlider继承了一组全面的信号:</p> <p>当滚动条的值更改时,将发出valueChanged()。 tracking()确定在用户交互过程中是否发出此信号。<br /> 滚动条的值范围已更改时,会发出rangeChanged()。<br /> 当用户开始拖动滑块时,将发出liderPressed()。<br /> 当用户拖动滑块时,将发出liderMoved()。<br /> 当用户释放滑块时,将发出liderReleased()。<br /> 当通过用户交互或通过triggerAction()函数更改滚动条时,将发出actionTriggered()。</p> <p>滚动条可以由键盘控制,但是它的默认focusPolicy()为Qt :: NoFocus。 使用setFocusPolicy()启用键盘与滚动条的交互:<br /> 向左/向右移动水平滚动条仅一步。<br /> 向上/向下单步移动垂直滚动条。<br /> PageUp向上移动一页。<br /> PageDown向下移动一页。<br /> Home移至起点(最小)。<br /> 结束移动到结束(最大)。</p> <p>滑块本身可以通过使用triggerAction()函数来控制,以模拟用户与滚动条控件的交互。 如果您有许多使用共同值范围的不同小部件,这将很有用。<br /> 大多数GUI样式使用pageStep()值来计算滑块的大小。<br /> 另请参见QScrollArea,QSlider,QDial,QSpinBox,GUI设计手册:滚动条和滑块示例。</p> <p>Public Functions – 公共函数<br /> QScrollBar::QScrollBar(Qt::Orientation orientation, QWidget *parent = nullptr)<br /> 构造具有给定orientation的滚动条。<br /> parent参数传递给QWidget构造函数。<br /> 最小值默认为0,最大值默认为99,singleStep大小为1,pageStep大小为10,初始值为0。</p> <p>QScrollBar::QScrollBar(QWidget *parent = nullptr)<br /> 构造一个垂直滚动条。<br /> parent参数发送到QWidget构造函数。<br /> 最小值默认为0,最大值默认为99,singleStep大小为1,pageStep大小为10,初始值为0。</p> <p>QScrollBar::~QScrollBar()<br /> 销毁滚动条。</p> <p>Protected Functions – 保护函数<br /> void QScrollBar::initStyleOption(QStyleOptionSlider *option) const<br /> 使用此QScrollBar中的值初始化option。 当子类需要QStyleOptionSlider但又不想自己填写所有信息时,此方法很有用。<br /> 另请参见QStyleOption :: initFrom()。</p> </div> </article> <article itemscope itemtype="http://schema.org/Article" id="post-7888" class="post-7888 post type-post status-publish format-standard hentry category-qt"> <header class="entry-header"> <h2 class="entry-title" itemprop="name"> <a itemprop="url" href="http://wiki.xuetang9.com/?p=7888" title="链向QPushButton 类(老九学堂C++会员友情翻译,不喜勿喷)的固定链接" rel="bookmark">QPushButton 类(老九学堂C++会员友情翻译,不喜勿喷)</a> </h2> <div class="entry-meta"><span class="entry-date"><a href="http://wiki.xuetang9.com/?p=7888" rel="bookmark"><time class="entry-date published" datetime="2020-05-27T14:14:22+08:00" itemprop="datepublished">5月 27, 2020</time></a></span> by <span class="author vcard" itemscope itemprop="author" itemtype="http://schema.org/Person"><a class="url fn n" href="http://wiki.xuetang9.com/?author=2889" rel="author" itemprop="url"><span itemprop="name">arklis</span></a></span><span class="sep">·</span><span class="comments-link"><a href="http://wiki.xuetang9.com/?p=7888#respond" itemprop="discussionUrl">0评论</a></span></div> </header> <div class="entry-content" itemprop="articleBody"> <p>QpushButton 类<br /> Detailed Description – 详细描述<br /> 按钮或命令按钮可能是任何图形用户界面中最常用的窗口小部件。 按下(单击)按钮以命令计算机执行某些操作或回答问题。 典型的按钮是“确定”,“应用”,“取消”,“关闭”,“是”,“否”和“帮助”。<br /> 命令按钮为矩形,通常显示描述其操作的文本标签。 可以通过在文本中的首选字符前面加上与号来指定快捷键。 例如:<br /> <img src="http://wiki.xuetang9.com/wp-content/uploads/2020/05/timg-7.png" alt="" /><br /> 在此示例中,快捷方式为Alt + D。 有关详细信息,请参见QShortcut文档(要显示实际的“&”号,请使用“ &&”)。</p> <p>按钮显示文本标签,还可以显示一个小图标。 可以使用构造函数来设置这些值,以后可以使用setText()和setIcon()对其进行更改。 如果禁用该按钮,则将根据GUI样式来操纵文本和图标的外观,以使该按钮看起来“已禁用”。</p> <p>当通过鼠标,空格键或键盘快捷键激活按钮时,按钮会发出clicked()信号。 连接到该信号以执行按钮的操作。 按钮还提供较少使用的信号,例如,pressed()和released()。</p> <p>默认情况下,对话框中的命令按钮是自动默认按钮,即当它们收到键盘输入焦点时会自动成为默认按钮。 默认按钮是当用户在对话框中按Enter或Return键时激活的按钮。 您可以使用setAutoDefault()进行更改。 请注意,自动默认按钮会保留一些额外的空间,这是绘制默认按钮指示器所必需的。 如果您不希望按钮周围有此空间,请调用setAutoDefault(false)。</p> <p>如此重要的是,按钮小部件已发展为适应过去十年中的许多变化。 现在,Microsoft样式指南显示了Windows按钮的大约十种不同状态,并且文字暗示当考虑所有功能组合时,还会有更多其他状态。</p> <p>最重要的模式或状态是:<br />  是否可用(显示为灰色,已禁用)。<br />  标准按钮,切换按钮或菜单按钮。<br />  开启或关闭(仅用于切换按钮)。<br />  默认或正常。 通常可以使用Enter或Return键“单击”对话框中的默认按钮。<br />  是否自动重复。<br />  是否按下。</p> <p>通常,当用户单击应用程序或对话框窗口上的某个动作(例如“应用”,“取消”,“关闭”和“帮助”)并且该窗口小部件应具有宽矩形且带有一个矩形的形状时,请使用按钮。 文字标签。 较小的,通常为方形的按钮(而不是命令按钮)而是工具按钮,它们会改变窗口的状态而不执行操作(例如QFileDialog右上角的按钮)。 Qt为这些按钮提供了一个特殊的类(QToolButton)。<br /> 如果您需要切换行为(请参阅setCheckable())或按下按钮时会自动重复激活信号的按钮(如滚动条中的箭头)(请参见setAutoRepeat()),则命令按钮可能不是您想要的。 如有疑问,请使用工具按钮。</p> <p>注意:在macOS上,当按钮的宽度小于50或高度小于30时,按钮的角由圆形变为方形。 使用setMinimumSize()函数来防止此行为。</p> <p>命令按钮的一种变体是菜单按钮。 这些命令不仅提供一个命令,而且还提供多个命令,因为单击它们会弹出一个选项菜单。 使用方法setMenu()将弹出菜单与按钮关联。</p> <p>其他类别的按钮是选项按钮(请参阅QRadioButton)和复选框(请参阅QCheckBox)。</p> <p>在Qt中,QAbstractButton基类提供大多数模式和其他API,而QPushButton提供GUI逻辑。 有关API的更多信息,请参见QAbstractButton。</p> <p>另请参见QToolButton,QRadioButton,QCheckBox和GUI Design Handbook:Push Button</p> <p>Properties – 属性</p> <p>autoDefault : bool<br /> 此属性保存按钮是否为自动默认按钮<br /> 如果将此属性设置为true,则按钮是自动默认按钮。<br /> 在某些GUI样式中,将绘制一个默认按钮,并在其周围有一个额外的框,最多3像素或更多。 Qt会自动在自动默认按钮周围保留此空间,即自动默认按钮的提示尺寸可能会稍大。<br /> 对于具有QDialog父级的按钮,此属性的默认值为true;否则为false。 否则默认为false。<br /> 有关默认和自动默认如何交互的详细信息,请参见default属性。<br /> 访问函数:<br /> bool autoDefault() const<br /> void setAutoDefault(bool)</p> <p>default : bool<br /> 此属性保存按钮是否为默认按钮</p> <p>默认和自动默认按钮决定当用户在对话框中按Enter键时会发生什么。</p> <p>当用户按下Enter键时,具有此属性设置为true的按钮(即对话框的默认按钮)将自动被按下,但有一个例外:如果autoDefault按钮当前具有焦点,则按下autoDefault按钮。 当对话框具有autoDefault按钮但没有默认按钮时,按Enter键将按当前具有焦点的autoDefault按钮,或者如果没有按钮具有焦点,则按焦点链中的下一个autoDefault按钮。</p> <p>在对话框中,一次只能有一个按钮是默认按钮。 然后,此按钮将显示一个额外的框架(取决于GUI样式)。</p> <p>默认的按钮行为仅在对话框中提供。 当按钮具有焦点时,始终可以通过按空格键从键盘上单击按钮。</p> <p>如果在对话框可见时将当前默认按钮的default属性设置为false,则下次对话框中的按钮获得焦点时,将自动分配一个新的默认值。<br /> 此属性的默认值为false。<br /> 访问函数:<br /> bool isDefault() const<br /> void setDefault(bool)</p> <p>Public Slots – 公共插槽</p> <p>void QPushButton::showMenu()<br /> 显示(弹出)相关的弹出菜单。 如果没有这样的菜单,则此功能不起作用。 直到用户关闭了弹出菜单,此功能才返回。</p> <p>Protectd Funtions – 保护方法</p> <p>void QPushButton::initStyleOption(QStyleOptionButton *option) const<br /> 使用此QPushButton中的值初始化option。 当子类需要QStyleOptionButton但又不想自己填写所有信息时,此方法很有用。<br /> 另请参见QStyleOption :: initFrom()。</p> <p>Public Funtions – 公共函数</p> <p>QPushButton::QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr)<br /> 构造一个带有icon,text和parent的按钮。<br /> 请注意,您还可以将QPixmap对象作为图标传递(由于C ++提供了隐式类型转换)。</p> <p>QPushButton::QPushButton(const QString &text, QWidget *parent = nullptr)<br /> 构造一个带有父parent和text的按钮。</p> <p>QPushButton::QPushButton(QWidget *parent = nullptr)<br /> 构造一个没有文本和parent的按钮。</p> <p>QPushButton::~QPushButton()<br /> 销毁按钮。</p> <p>autoDefault : bool<br /> 此属性保存按钮是否为自动默认按钮</p> <p>如果将此属性设置为true,则按钮是自动默认按钮。</p> <p>在某些GUI样式中,将绘制一个默认按钮,并在其周围有一个额外的框,最多3像素或更多。 Qt会自动在自动默认按钮周围保留此空间,即自动默认按钮的提示尺寸可能会稍大。</p> <p>对于具有QDialog父级的按钮,此属性的默认值为true;否则为false。 否则默认为false。</p> <p>有关默认和自动默认如何交互的详细信息,请参见default属性。<br /> 访问函数:<br /> bool autoDefault() const<br /> void setAutoDefault(bool)</p> <p>default : bool<br /> 此属性保存按钮是否为默认按钮</p> <p>默认和自动默认按钮决定当用户在对话框中按Enter键时会发生什么。</p> <p>当用户按下Enter键时,具有此属性设置为true的按钮(即对话框的默认按钮)将自动被按下,但有一个例外:如果autoDefault按钮当前具有焦点,则按下autoDefault按钮。 当对话框具有autoDefault按钮但没有默认按钮时,按Enter键将按当前具有焦点的autoDefault按钮,或者如果没有按钮具有焦点,则按焦点链中的下一个autoDefault按钮。</p> <p>在对话框中,一次只能有一个按钮是默认按钮。 然后,此按钮将显示一个额外的框架(取决于GUI样式)。</p> <p>默认的按钮行为仅在对话框中提供。 当按钮具有焦点时,始终可以通过按空格键从键盘上单击按钮。</p> <p>如果在对话框可见时将当前默认按钮的default属性设置为false,则下次对话框中的按钮获得焦点时,将自动分配一个新的默认值。<br /> 此属性的默认值为false。<br /> 访问函数:<br /> bool isDefault() const<br /> void setDefault(bool)</p> <p>flat : bool<br /> 此属性保存是否提高按钮边框</p> <p>此属性的默认值为false。 如果设置了此属性,除非按下按钮,否则大多数样式都不会绘制按钮背景。 setAutoFillBackground()可用于确保使用QPalette :: Button画笔填充背景。<br /> 访问函数:<br /> bool isFlat() const<br /> void setFlat(bool)</p> <p>QMenu *QPushButton::menu() const<br /> 返回按钮的关联弹出菜单,如果未设置弹出菜单,则返回nullptr。<br /> 另请参见setMenu()。</p> <p>void QPushButton::setMenu(QMenu *menu)<br /> 将弹出菜单menu与此按钮关联。 这会将按钮变成菜单按钮,在某些样式中,该按钮将在按钮文本的右侧产生一个小三角形。<br /> 菜单的所有权未转移到按钮。</p> <p>以Fusion小部件样式显示的带有弹出菜单的按钮。<br /> 另请参见menu()。</p> </div> </article> <article itemscope itemtype="http://schema.org/Article" id="post-7885" class="post-7885 post type-post status-publish format-standard hentry category-qt"> <header class="entry-header"> <h2 class="entry-title" itemprop="name"> <a itemprop="url" href="http://wiki.xuetang9.com/?p=7885" title="链向QProgressBar 类(老九学堂C++会员友情翻译,不喜勿喷)的固定链接" rel="bookmark">QProgressBar 类(老九学堂C++会员友情翻译,不喜勿喷)</a> </h2> <div class="entry-meta"><span class="entry-date"><a href="http://wiki.xuetang9.com/?p=7885" rel="bookmark"><time class="entry-date published" datetime="2020-05-27T14:12:43+08:00" itemprop="datepublished">5月 27, 2020</time></a></span> by <span class="author vcard" itemscope itemprop="author" itemtype="http://schema.org/Person"><a class="url fn n" href="http://wiki.xuetang9.com/?author=2889" rel="author" itemprop="url"><span itemprop="name">arklis</span></a></span><span class="sep">·</span><span class="comments-link"><a href="http://wiki.xuetang9.com/?p=7885#respond" itemprop="discussionUrl">0评论</a></span></div> </header> <div class="entry-content" itemprop="articleBody"> <p>QprogressBar 类<br /> Detailed Description – 内容描述<br /> <img src="http://wiki.xuetang9.com/wp-content/uploads/2020/05/timg-6.png" alt="" /><br /> 进度条用于向用户指示操作的进度,并向用户保证应用程序仍在运行。<br /> 进度栏steps的概念。 您可以通过指定最小和最大可能的步长值来进行设置,当您稍后为其提供当前步长值时,它将显示已完成的步长百分比。 百分比是通过将进度(value()-minimum())除以maximum()-minimum()来计算的。<br /> 您可以使用setMinimum()和setMaximum指定最小和最大步数。 当前的步数由setValue()设置。 可以使用reset()将进度条倒退到开头。</p> <p>如果最小和最大值都设置为0,则该条显示忙碌指示符,而不是步进百分比。 例如,当无法确定要下载的项目的大小时,使用QNetworkAccessManager下载项目时,这很有用。</p> <p>另请参见QProgressDialog和GUI Design Handbook: Progress Indicator</p> <p>Properties – 属性<br /> alignment : Qt::Alignment<br /> 他的属性保持进度条的对齐<br /> 访问函数:<br /> Qt::Alignment alignment() const<br /> void setAlignment(Qt::Alignment aligment)<br /> Public Functions – 公共函数<br /> QProgressBar::QProgressBar(QWidget *parent = nullptr)<br /> 用给定的parent构造进度条。<br /> 默认情况下,最小步长值设置为0,最大步长设置为100。<br /> 另请参见setRange()。</p> <p>QProgressBar::~QProgressBar()<br /> 析构函数。</p> <p>alignment : Qt::Alignment<br /> 此属性保存进度条的对齐方式。<br /> 访问函数:<br /> Qt::Aligment alignment() const<br /> void setAlignment(Qt::Alignment alignment)<br /> format : QString<br /> 此属性保存用于生成当前文本的字符串<br /> %p-用完成的百分比代替。 %v-由当前值替换。 %m-由总步数代替。<br /> 默认值为“%p%”。<br /> 此属性在Qt 4.2中引入。<br /> 访问函数:<br /> QString format() const<br /> void setFormat(const QString & format)<br /> void resetFormat()<br /> 另请参见text()。</p> <p>invertedAppearance : bool<br /> 此属性保存进度条是否显示其进度反转<br /> 如果此属性为true,则进度条会朝另一个方向(例如,从右到左)增长。 默认情况下,进度条不反转。<br /> 此属性在Qt 4.1中引入。<br /> 访问函数:<br /> bool invertedAppearence<br /> void setInvertedAppearance(bool invert)<br /> 另请参见orientation和layoutDirection。</p> <p>textVisible : bool<br /> 此属性保存是否应显示当前完成的百分比<br /> 样式可能会忽略此属性(例如,QMacStyle永远不会绘制文本)。<br /> 访问函数:<br /> bool isTextVisible() const<br /> void setTextVisible(cool visible)<br /> 另请参见textDirection。</p> <p>maximum : int<br /> 此属性保存进度条的最大值<br /> 设置此属性时,如有必要,将调整最小值,以确保范围保持有效。 如果当前值不在新范围内,则使用reset()重置进度条。<br /> 访问函数:<br /> int maximum() const<br /> void setMaximum (int maximum)</p> <p>minimum : int<br /> 此属性保存进度条的最小值<br /> 设置此属性时,如有必要,将调整最大值以确保范围保持有效。 如果当前值不在新范围内,则使用reset()重置进度条。<br /> 访问函数:<br /> int minimum() const<br /> void setMinimum(int minimum)</p> <p>orientation : Qt::Orientation<br /> 此属性保存进度条的方向<br /> 方向必须是Qt :: Horizontal(默认)或Qt :: Vertical。<br /> 此属性在Qt 4.1中引入。<br /> 访问函数:<br /> Qt::Orientation orientation() const<br /> void setPrientation(Qt::Orientation)<br /> 另请参见verticalAppearance和textDirection。</p> <p>textDirection : Direction<br /> 此属性保存垂直进度条的文本阅读方向<br /> 此属性对水平进度条没有影响。 默认情况下,读取方向为QProgressBar :: TopToBottom。<br /> 此属性在Qt 4.1中引入。<br /> 访问函数:<br /> QprogressBar::Direction textDirection() const<br /> void setTextDiretion(QprogressBar::DirectiontextDiretion)<br /> 另请参阅方向和textVisible。</p> <p>text : const QString<br /> 该属性保存进度条显示的描述性文本<br /> 返回的文本与进度条中心(或某些样式的左侧)中显示的文本相同。<br /> 文本中显示的进度可能小于最小值,表示进度条在设置任何进度之前处于“重置”状态。<br /> 在默认实现中,文本或者包含指示到目前为止的进度的百分比值,或者由于进度条处于重置状态而为空白。<br /> 访问函数:<br /> virtual QString text() const</p> <p>value : int<br /> 此属性保存进度条的当前值<br /> 尝试将当前值更改为最小最大范围之外的值不会影响当前值。<br /> 访问函数:<br /> int value() const<br /> void setValue(int value)</p> <p>Public Slots – 公共插槽<br /> void QProgressBar::reset()<br /> 重置进度栏。 进度栏“倒带”,并且没有进度。</p> <p>maximum : int<br /> 此属性保存进度条的最大值<br /> 设置此属性时,如有必要,将调整最小值,以确保范围保持有效。 如果当前值不在新范围内,则使用reset()重置进度条。<br /> 访问函数:<br /> int maximum() const<br /> void setMaximum (int maximum)</p> <p>minimum : int<br /> 此属性保存进度条的最小值<br /> 设置此属性时,如有必要,将调整最大值以确保范围保持有效。 如果当前值不在新范围内,则使用reset()重置进度条。<br /> 访问函数:<br /> int minimum() const<br /> void setMinimum(int minimum)</p> <p>orientation : Qt::Orientation<br /> 此属性保存进度条的方向<br /> 方向必须是Qt :: Horizontal(默认)或Qt :: Vertical。<br /> 此属性在Qt 4.1中引入。<br /> 访问函数:<br /> Qt::Orientation orientation() const<br /> void setPrientation(Qt::Orientation)<br /> 另请参见verticalAppearance和textDirection。</p> <p>void QProgressBar::setRange(int minimum, int maximum)<br /> 将进度条的最小值和最大值分别设置为minimum和maximum。<br /> 如果maximum小于minimum,则minimum成为唯一合法值。<br /> 如果当前值不在新范围内,则使用reset()重置进度条。<br /> 可以使用setRange(0,0)将QProgressBar设置为不确定状态。<br /> 另请参见minimum和maximum。</p> <p>value : int<br /> 此属性保存进度条的当前值<br /> 尝试将当前值更改为最小最大范围之外的值不会影响当前值。<br /> 访问函数:<br /> int value() const<br /> void setValue(int value)<br /> Protected Functions – 保护函数<br /> void QProgressBar::initStyleOption(QStyleOptionProgressBar *option) const<br /> 使用此QProgressBar中的值初始化选项。 当子类需要QStyleOptionProgressBar但又不想自己填写所有信息时,此方法很有用。<br /> 另请参见QStyleOption :: initFrom()。</p> </div> </article> <article itemscope itemtype="http://schema.org/Article" id="post-7882" class="post-7882 post type-post status-publish format-standard hentry category-qt"> <header class="entry-header"> <h2 class="entry-title" itemprop="name"> <a itemprop="url" href="http://wiki.xuetang9.com/?p=7882" title="链向QMessageBox 类(老九学堂C++会员友情翻译,不喜勿喷)的固定链接" rel="bookmark">QMessageBox 类(老九学堂C++会员友情翻译,不喜勿喷)</a> </h2> <div class="entry-meta"><span class="entry-date"><a href="http://wiki.xuetang9.com/?p=7882" rel="bookmark"><time class="entry-date published" datetime="2020-05-27T14:11:11+08:00" itemprop="datepublished">5月 27, 2020</time></a></span> by <span class="author vcard" itemscope itemprop="author" itemtype="http://schema.org/Person"><a class="url fn n" href="http://wiki.xuetang9.com/?author=2889" rel="author" itemprop="url"><span itemprop="name">arklis</span></a></span><span class="sep">·</span><span class="comments-link"><a href="http://wiki.xuetang9.com/?p=7882#respond" itemprop="discussionUrl">0评论</a></span></div> </header> <div class="entry-content" itemprop="articleBody"> <p>Properties-属性<br /> detailedText : QString<br /> 此属性保存要在详细信息区域中显示的文本。<br /> 文本将被解释为纯文本。<br /> 默认情况下,此属性包含一个空字符串。<br /> 此属性在Qt 4.2中引入。<br /> 访问功能:<br /> QString detailedText() const<br /> void setDetailedText(const QString &text)<br /> 另请参见QMessageBox :: text和QMessageBox :: informativeText。</p> <p>icon : Icon<br /> 此属性包含消息框的图标<br /> 可以使用以下值之一指定消息框的图标:<br /> • QMessageBox::NoIcon<br /> • QMessageBox::Question<br /> • QMessageBox::Information<br /> • QMessageBox::Warning<br /> • QMessageBox::Critical<br /> 默认值为QMessageBox :: NoIcon。<br /> 用于显示实际图标的像素图取决于当前的 GUI style。您还可以通过设置icon pixmap属性来为图标设置自定义像素图。<br /> 访问功能:<br /> QMessageBox::Icon icon() const<br /> void setIcon(QMessageBox::Icon)<br /> 另请参见iconPixmap<br /> iconPixmap:QPixmap<br /> 此属性保存当前图标<br /> 消息框当前使用的图标。注意,通常很难绘制一张看起来适合所有GUI styles的像素图。您可能需要为每个平台提供不同的像素图。<br /> 默认情况下,此属性是未定义的。<br /> 访问功能:<br /> QPixmap iconPixmap() const<br /> void setIconPixmap(const QPixmap &pixmap)<br /> 另请参阅icon。</p> <p>informativeText : QString<br /> 此属性包含信息文本,该文本为消息提供了更完整的描述<br /> 信息文本可用于扩展 text(),以向用户提供更多信息。在Mac上,该文本以小系统字体显示在 text()下方。在其他平台上,它只是简单地附加到现有文本之后。<br /> 默认情况下,此属性包含一个空字符串。<br /> 此属性在Qt 4.2中引入。<br /> 访问功能:<br /> QString informativeText() const<br /> void setInformativeText(const QString &text)<br /> 另请参见QMessageBox :: text和QMessageBox :: detailedText。</p> <p>standardButtons : StandardButtons<br /> 消息框中的标准按钮集合<br /> 此属性控制消息框使用哪些标准按钮。<br /> 默认情况下,此属性不包含标准按钮。<br /> 此属性在Qt 4.2中引入。<br /> 访问功能:<br /> QMessageBox::StandardButtons standardButtons() const<br /> void setStandardButtons(QMessageBox::StandardButtons buttons)<br /> 另请参见addButton()。</p> <p>text : QString<br /> 此属性保存要显示的消息框文本。<br /> 根据文本格式设置(QMessageBox :: textFormat),文本将被解释为纯文本还是富文本。默认设置为Qt :: AutoText,即消息框将尝试自动检测文本格式。<br /> 此属性的默认值为一个空字符串。<br /> 访问功能:<br /> QString text() const<br /> void setText(const QString &text)<br /> 另请参见textFormat,QMessageBox :: informativeText和QMessageBox :: detailedText。</p> <p>textFormat:Qt :: TextFormat<br /> 此属性保存消息框显示的文本格式<br /> 消息框使用的当前文本格式。有关可能选项的说明,请参见Qt :: TextFormat枚举。<br /> 默认格式为Qt :: AutoText。<br /> 访问功能:<br /> Qt::TextFormat textFormat() const<br /> void setTextFormat(Qt::TextFormat format)<br /> 另请参见setText()。</p> <p>textInteractionFlags:Qt :: TextInteractionFlags<br /> 指定消息框的标签应如何与用户输入交互。<br /> 默认值取决于样式。<br /> 此属性在Qt 5.1中引入。<br /> 访问功能:<br /> Qt::TextInteractionFlags textInteractionFlags() const<br /> void setTextInteractionFlags(Qt::TextInteractionFlags flags)<br /> 参见QStyle :: SH_MessageBox_TextInteractionFlags。</p> <p>Public Functions-公共函数<br /> QMessageBox :: QMessageBox(QMessageBox :: Icon icon,const QString&title,const QString&text,QMessageBox :: StandardButtons button = NoButton,QWidget * parent = nullptr,Qt :: WindowFlags f = Qt :: Dialog | Qt :: MSWindowsFixedSizeDialogHint )<br /> 使用给定的icon, title, text,和标准buttons构造一个消息框。可以使用addButton()随时添加标准或自定义按钮。在父母和˚F参数被传递给QDialog的构造。<br /> 该消息框是一个应用程序模式对话框。<br /> 在macOS上,如果parent 不是nullptr并且您希望您的消息框显示为该parent的Qt :: Sheet,请将消息框的窗口模式设置为Qt :: WindowModal(默认值)。否则,该消息框将是标准对话框。<br /> 另请参见setWindowTitle(),setText(),setIcon()和setStandardButtons()<br /> QMessageBox :: QMessageBox(QWidget * parent = nullptr)<br /> 构造一个没有文本且没有按钮的消息框。parent被传递给QDialog构造函数。在macOS上,如果希望消息框显示为其parent的Qt :: Sheet,请将消息框的窗口模式设置为Qt :: WindowModal或使用open()。 否则,该消息框将是标准对话框。<br /> QMessageBox :: 〜QMessageBox()<br /> 销毁消息框。<br /> void QMessageBox::addButton(QAbstractButton *button, QMessageBox::ButtonRole role)<br /> 将给定button 添加到具有指定role的消息框中。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见removeButton(),button()和setStandardButtons()。</p> <p>QPushButton *QMessageBox::addButton(const QString &text, QMessageBox::ButtonRole role)<br /> 这是一个过载功能。<br /> 用给定的text创建一个按钮,将其添加到指定role的消息框中,然后返回它。<br /> 此功能在Qt 4.2中引入<br /> QPushButton *QMessageBox::addButton(QMessageBox::StandardButton button)<br /> 这是一个过载功能。<br /> 如果有效,则将标准 button添加到消息框中,然后返回按钮。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见setStandardButtons()。<br /> QAbstractButton *QMessageBox::button(QMessageBox::StandardButton which) const<br /> 返回对应于标准按钮的指针 which,或者nullptr如果标准按钮在此消息框不存在。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见standardButtons和standardButton()。</p> <p>QMessageBox::ButtonRole QMessageBox::buttonRole(QAbstractButton *button) const<br /> 返回指定button的按钮角色。该函数返回InvalidRole如果button是nullptr或还没有被添加到消息框。<br /> 此功能在Qt 4.5中引入。<br /> 另请参见button()和addButton()。</p> <p>QList QMessageBox::buttons() const<br /> 返回已添加到消息框中的所有按钮的列表。<br /> 此功能在Qt 4.5中引入。<br /> 另请参见buttonRole(),addButton()和removeButton()。</p> <p>QCheckBox * QMessageBox :: checkBox()常量<br /> 返回对话框上显示的复选框。这是nullptr如果未设置复选框。<br /> 此功能在Qt 5.2中引入。<br /> 另请参见setCheckBox()。</p> <p>QAbstractButton *QMessageBox::clickedButton() const<br /> 返回被点击的用户,或按钮nullptr,如果用户打Esc键键和无 escape button设置。<br /> 如果尚未调用exec(),则返回nullptr。<br /> 例:<br /> QMessageBox messageBox(this);<br /> QAbstractButton *disconnectButton =<br /> messageBox.addButton(tr(“Disconnect”), QMessageBox::ActionRole);<br /> …<br /> messageBox.exec();<br /> if (messageBox.clickedButton() == disconnectButton) {<br /> …<br /> }</p> <p>此功能在Qt 4.2中引入。<br /> 另请参见standardButton()和button()。<br /> QPushButton *QMessageBox::defaultButton() const<br /> 返回应为消息框 default button。如果未设置默认按钮,则返回nullptr。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见setDefaultButton(),addButton()和QPushButton :: setDefault()。<br /> detailedText : QString<br /> 此属性保存要在详细信息区域中显示的文本。<br /> 文本将被解释为纯文本。<br /> 默认情况下,此属性包含一个空字符串。<br /> 此属性在Qt 4.2中引入。<br /> 访问功能:<br /> QString detailedText() const<br /> void setDetailedText(const QString &text)<br /> 另请参见QMessageBox :: text和QMessageBox :: informativeText。<br /> QAbstractButton * QMessageBox :: escapeButton()const<br /> 返回按下逃生键时激活的按钮。<br /> 默认情况下,QMessageBox尝试自动检测转义按钮,如下所示:<br /> 1. 如果只有一个按钮,则称为逃逸按钮。<br /> 2. 如果有一个 Cancel按钮,则成为“退出”按钮。<br /> 3. 仅在macOS上,如果仅存在一个角色为QMessageBox :: RejectRole的按钮,则将其设置为转义按钮。<br /> 当无法自动检测到逃生按钮时,按Esc键无效。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见setEscapeButton()和addButton()。<br /> icon : Icon<br /> 此属性包含消息框的图标<br /> 可以使用以下值之一指定消息框的图标:<br /> • QMessageBox::NoIcon<br /> • QMessageBox::Question<br /> • QMessageBox::Information<br /> • QMessageBox::Warning<br /> • QMessageBox::Critical<br /> 默认值为QMessageBox :: NoIcon。<br /> 用于显示实际图标的像素图取决于当前的GUI style。您还可以通过设置 icon pixmap属性来为图标设置自定义像素图。<br /> 访问功能:<br /> QMessageBox::Icon icon() const<br /> void setIcon(QMessageBox::Icon)<br /> 另请参见iconPixmap。</p> <p>iconPixmap:QPixmap<br /> 此属性保存当前图标<br /> 消息框当前使用的图标。注意,通常很难绘制一张看起来适合所有GUI样式的像素图。您可能需要为每个平台提供不同的像素图。<br /> 默认情况下,此属性是未定义的。<br /> 访问功能:<br /> QPixmap iconPixmap() const<br /> void setIconPixmap(const QPixmap &pixmap)<br /> 另请参阅 icon.</p> <p>informativeText : QString<br /> 此属性包含信息文本,该文本为消息提供了更完整的描述<br /> 信息文本可用于扩展 text(),以向用户提供更多信息。在Mac上,该文本以小系统字体显示在 text()下方。在其他平台上,它只是简单地附加到现有文本之后。<br /> 默认情况下,此属性包含一个空字符串。<br /> 此属性在Qt 4.2中引入。<br /> 访问功能:<br /> QString informativeText() const<br /> void setInformativeText(const QString &text)<br /> 另请参见QMessageBox :: text和QMessageBox :: detailedText。</p> <p>void QMessageBox::open(QObject *receiver, const char *member)<br /> 打开的对话框和其连接 finished()或buttonClicked()信号到由指定的槽receiver和member。如果member中的插槽具有其第一个参数的指针,则连接为buttonClicked(),否则连接为finished()。<br /> 关闭对话框后,信号将从插槽中断开。<br /> void QMessageBox::removeButton(QAbstractButton *button)<br /> 删除button从按钮框而不删除它。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见addButton()和setStandardButtons()。<br /> void QMessageBox::setCheckBox(QCheckBox *cb)<br /> 设置消息对话框上的复选框cb。该消息框将拥有复选框的所有权。参数cb可以是nullptr从消息框中删除现有的复选框。<br /> 此功能在Qt 5.2中引入。<br /> 另请参见checkBox()。</p> <p>void QMessageBox::setDefaultButton(QPushButton *button)<br /> 将消息框的 default button 为button。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见defaultButton(),addButton()和QPushButton :: setDefault()</p> <p>void QMessageBox::setDefaultButton(QMessageBox::StandardButton button)<br /> 将消息框的 default button 为button。<br /> 此功能在Qt 4.3中引入。<br /> 另请参见addButton()和QPushButton :: setDefault()</p> <p>detailedText : QString<br /> 此属性保存要在详细信息区域中显示的文本。<br /> 文本将被解释为纯文本。<br /> 默认情况下,此属性包含一个空字符串。<br /> 此属性在Qt 4.2中引入。<br /> 访问功能:<br /> QString detailedText() const<br /> void setDetailedText(const QString &text)<br /> 另请参见QMessageBox :: text和QMessageBox :: informativeText。</p> <p>void QMessageBox::setEscapeButton(QAbstractButton *button)<br /> 将按下Escape键时激活的按钮设置为button。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见escapeButton(),addButton()和clickedButton()。</p> <p>void QMessageBox::setEscapeButton(QMessageBox::StandardButton button)<br /> 将按Escape键时激活的按钮设置为button。<br /> 此功能在Qt 4.3中引入。<br /> 另请参见addButton()和clickedButton()。</p> <p>detailedText : QString<br /> 此属性保存要在详细信息区域中显示的文本。<br /> 文本将被解释为纯文本。<br /> 默认情况下,此属性包含一个空字符串。<br /> 此属性在Qt 4.2中引入。<br /> 访问功能:<br /> QString detailedText() const<br /> void setDetailedText(const QString &text)<br /> 另请参见QMessageBox :: text和QMessageBox :: informativeText。</p> <p>void QMessageBox::setEscapeButton(QAbstractButton *button)<br /> 将按下Escape键时激活的按钮设置为button。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见escapeButton(),addButton()和clickedButton()。</p> <p>void QMessageBox::setEscapeButton(QMessageBox::StandardButton button)<br /> 将按Escape键时激活的按钮设置为button。<br /> 此功能在Qt 4.3中引入。<br /> 另请参见addButton()和clickedButton()。</p> <p>icon : Icon<br /> 此属性包含消息框的图标<br /> 可以使用以下值之一指定消息框的图标:<br /> • QMessageBox::NoIcon<br /> • QMessageBox::Question<br /> • QMessageBox::Information<br /> • QMessageBox::Warning<br /> • QMessageBox::Critical<br /> 默认值为QMessageBox :: NoIcon。<br /> 用于显示实际图标的像素图取决于当前的GUI style。您还可以通过设置 icon pixmap属性来为图标设置自定义像素图。<br /> 访问功能:<br /> QMessageBox::Icon icon() const<br /> 虚空 setIcon( QMessageBox :: Icon)<br /> 另请参见iconPixmap。</p> <p>iconPixmap:QPixmap<br /> 此属性保存当前图标<br /> 消息框当前使用的图标。注意,通常很难绘制一张看起来适合所有GUI样式的像素图。您可能需要为每个平台提供不同的像素图。<br /> 默认情况下,此属性是未定义的。<br /> 访问功能:<br /> QPixmap iconPixmap()const<br /> 虚空 setIconPixmap(const QPixmap& pixmap)<br /> 另请参阅icon.。</p> <p>informativeText:QString的<br /> 此属性包含信息文本,该文本为消息提供了更完整的描述<br /> 信息文本可用于扩展文本(),以向用户提供更多信息。在Mac上,该文本以小系统字体显示在文本()下方。在其他平台上,它只是简单地附加到现有文本之后。<br /> 默认情况下,此属性包含一个空字符串。<br /> 此属性在Qt 4.2中引入。<br /> 访问功能:<br /> QString INFORMATIONativeText()const<br /> 虚空 setInformativeText(常量QString和 text)<br /> 另请参见QMessageBox :: text和QMessageBox :: detailedText。</p> <p>informativeText : QString<br /> 此属性包含信息文本,该文本为消息提供了更完整的描述<br /> 信息文本可用于扩展 text(),以向用户提供更多信息。在Mac上,该文本以小系统字体显示在 text()下方。在其他平台上,它只是简单地附加到现有文本之后。<br /> 默认情况下,此属性包含一个空字符串。<br /> 此属性在Qt 4.2中引入。<br /> 访问功能:<br /> QString informativeText() const<br /> void setInformativeText(const QString &text)<br /> 另请参见QMessageBox :: text和QMessageBox :: detailedText。</p> <p>standardButtons : StandardButtons<br /> 消息框中的标准按钮集合<br /> 此属性控制消息框使用哪些标准按钮。<br /> 默认情况下,此属性不包含标准按钮。<br /> 此属性在Qt 4.2中引入。<br /> 访问功能:<br /> QMessageBox::StandardButtons standardButtons() const<br /> void setStandardButtons(QMessageBox::StandardButtons buttons)<br /> 另请参见addButton()。</p> <p>文字:QString<br /> 此属性保存要显示的消息框文本。<br /> 根据文本格式设置(QMessageBox :: textFormat),文本将被解释为纯文本还是富文本。默认设置为Qt :: AutoText,即消息框将尝试自动检测文本格式。<br /> 此属性的默认值为一个空字符串。<br /> 访问功能:<br /> QString text() const<br /> void setText(const QString &text)<br /> 另请参见textFormat,QMessageBox :: informativeText和QMessageBox :: detailedText。</p> <p>textFormat:Qt :: TextFormat<br /> 此属性保存消息框显示的文本格式<br /> 消息框使用的当前文本格式。有关可能选项的说明,请参见Qt :: TextFormat枚举。<br /> 默认格式为Qt :: AutoText。<br /> 访问功能:<br /> Qt::TextFormat textFormat() const<br /> void setTextFormat(Qt::TextFormat format)<br /> 另请参见setText()。</p> <p>textInteractionFlags:Qt :: TextInteractionFlags<br /> 指定消息框的标签应如何与用户输入交互。<br /> 默认值取决于样式。<br /> 此属性在Qt 5.1中引入。<br /> 访问功能:<br /> Qt::TextInteractionFlags textInteractionFlags() const<br /> void setTextInteractionFlags(Qt::TextInteractionFlags flags)<br /> 参见QStyle :: SH_MessageBox_TextInteractionFlags。</p> <p>void QMessageBox::setWindowModality(Qt::WindowModality windowModality)<br /> 这个函数遮盖了QWidget :: setWindowModality()。<br /> 将消息框的模态设置为windowModality。<br /> 在macOS上,如果模式设置为Qt :: WindowModal并且消息框具有parent,则消息框将为Qt :: Sheet,否则消息框将为标准对话框。<br /> 此功能在Qt 4.2中引入。<br /> void QMessageBox::setWindowTitle(const QString &title)<br /> 此函数隐藏QWidget :: setWindowTitle()。<br /> 将消息框的标题设置为title。在macOS上,窗口标题将被忽略(根据macOS指南的要求)。<br /> 此功能在Qt 4.2中引入。<br /> QMessageBox :: StandardButton QMessageBox :: standardButton( QAbstractButton * button)常量<br /> 返回与给定button对应的标准按钮枚举值,如果给定button不是标准按钮,则返回NoButton。<br /> 此功能在Qt 4.2中引入。<br /> 另请参见button()和standardButtons()。</p> <p>standardButtons : StandardButtons<br /> 消息框中的标准按钮集合<br /> 此属性控制消息框使用哪些标准按钮。<br /> 默认情况下,此属性不包含标准按钮。<br /> 此属性在Qt 4.2中引入。<br /> 访问功能:<br /> MessageBox::StandardButtons standardButtons() const<br /> void setStandardButtons(QMessageBox::StandardButtons buttons)<br /> 另请参见addButton()。</p> <p>文字:QString<br /> 此属性保存要显示的消息框文本。<br /> 根据文本格式设置(QMessageBox :: textFormat),文本将被解释为纯文本还是富文本。默认设置为Qt :: AutoText,即消息框将尝试自动检测文本格式。<br /> 此属性的默认值为一个空字符串。<br /> 访问功能:<br /> QString text() const<br /> void setText(const QString &text)<br /> 另请参见textFormat,QMessageBox :: informativeText和QMessageBox :: detailedText。</p> <p>textFormat:Qt :: TextFormat<br /> 此属性保存消息框显示的文本格式<br /> 消息框使用的当前文本格式。有关可能选项的说明,请参见Qt :: TextFormat枚举。<br /> 默认格式为Qt :: AutoText。<br /> 访问功能:<br /> Qt::TextFormat textFormat() const<br /> void setTextFormat(Qt::TextFormat format)<br /> 另请参见setText()。</p> <p>textInteractionFlags:Qt :: TextInteractionFlags<br /> 指定消息框的标签应如何与用户输入交互。<br /> 默认值取决于样式。<br /> 此属性在Qt 5.1中引入。<br /> 访问功能:<br /> t::TextInteractionFlags textInteractionFlags() const<br /> void setTextInteractionFlags(Qt::TextInteractionFlags flags)<br /> 参见QStyle :: SH_MessageBox_TextInteractionFlags。</p> <p>Public Slots-公共插槽<br /> [override virtual slot]int QMessageBox :: exec()<br /> 重新实现:QDialog :: exec()。<br /> 将消息框显示为 modal dialog,直到用户将其关闭之前,该 modal dialog一直处于阻塞状态。<br /> 当使用带有标准按钮的QMessageBox时,此函数返回一个StandardButton值,该值指示单击的标准按钮。当使用带有自定义按钮的QMessageBox时,此函数返回一个不透明的值。使用clickedButton()确定单击了哪个按钮。<br /> 注:该 result()函数返回也StandardButton值,而不是声明QDialog :: DialogCode。<br /> 用户在单击按钮或使用窗口系统提供的机制关闭对话框之前,无法与同一应用程序中的任何其他窗口进行交互。<br /> 另请参见show()和result()<br /> Static Public Members-静态公众成员<br /> void QMessageBox::about(QWidget *parent, const QString &title, const QString &text)<br /> 显示有关与标题框简单的标题和文本的text。About框的父对象为parent。<br /> about()在四个位置寻找合适的图标:<br /> 1. 如果存在,它更喜欢parent-> icon()。<br /> 2. 如果不是,它将尝试包含parent的顶级窗口小部件。<br /> 3. 如果失败,它将尝试active window.。<br /> 4. 作为最后的选择,它使用信息图标。<br /> “关于”框有一个标记为“确定”的按钮。在macOS上,“关于”框作为无模式窗口弹出;在其他平台上,它目前是应用程序模式。<br /> 另请参见QWidget :: windowIcon()和QApplication :: activeWindow()</p> <p>void QMessageBox::aboutQt(QWidget *parent, const QString &title = QString())<br /> 显示一个有关Qt的简单消息框,其中带有给定的标题,并以parent居中(如果parent不是nullptr)。该消息包括应用程序正在使用的Qt的版本号。<br /> 如Menus示例所示,这对于包含在应用程序的“ 帮助”菜单中很有用。<br /> QApplication提供此功能作为插槽。<br /> 在macOS上,“关于”框作为无模式窗口弹出;在其他平台上,它目前是应用程序模式。<br /> 另请参见QApplication :: aboutQt()。</p> <p>QMessageBox::StandardButton QMessageBox::critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)<br /> 打开一个关键消息框,在给定的 parent 窗口小部件前面带有给定的 title和 text。<br /> 标准buttons将添加到消息框中。defaultButton指定按下Enter键时使用的按钮。defaultButton必须引用在button中给定的按钮。如果defaultButton为QMessageBox :: NoButton,则QMessageBox自动选择一个合适的默认值。<br /> 返回被单击的标准按钮的标识。如果改为按Esc键,则返回 escape button。<br /> 该消息框是一个 application modal 对话框。<br /> 警告:在执行对话框期间不要删除parent 对象。如果要执行此操作,则应使用QMessageBox构造函数之一自己创建对话框。<br /> 此功能在Qt 4.2中引入。<br /> 另请参阅 question(), warning(),和critical().<br /> QMessageBox::StandardButton QMessageBox::information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)<br /> 打开一个关键消息框,在给定的 parent 窗口小部件前面带有给定的 title和 text。<br /> 标准buttons将添加到消息框中。defaultButton指定按下Enter键时使用的按钮。defaultButton必须引用在button中给定的按钮。如果defaultButton为QMessageBox :: NoButton,则QMessageBox自动选择一个合适的默认值。<br /> 返回被单击的标准按钮的标识。如果改为按Esc键,则返回 escape button。<br /> 该消息框是一个 application modal 对话框。<br /> 警告:在执行对话框期间不要删除parent 对象。如果要执行此操作,则应使用QMessageBox构造函数之一自己创建对话框。<br /> 此功能在Qt 4.2中引入。<br /> 另请参阅 question(), warning(),和critical().</p> <p>[static]QMessageBox::StandardButton QMessageBox::warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)<br /> 打开一个关键消息框,在给定的 parent 窗口小部件前面带有给定的 title和 text。<br /> 标准buttons将添加到消息框中。defaultButton指定按下Enter键时使用的按钮。defaultButton必须引用在button中给定的按钮。如果defaultButton为QMessageBox :: NoButton,则QMessageBox自动选择一个合适的默认值。<br /> 返回被单击的标准按钮的标识。如果改为按Esc键,则返回 escape button。<br /> 该消息框是一个 application modal 对话框。<br /> 警告:在执行对话框期间不要删除parent 对象。如果要执行此操作,则应使用QMessageBox构造函数之一自己创建对话框。<br /> 此功能在Qt 4.2中引入。<br /> 另请参阅 question(), warning(),和critical().<br /> Detailed Description-详细说明<br /> 消息框显示用于向用户发出警报的主要text ,用于进一步说明警报或询问用户问题的 informative text,以及用于在用户需要时提供更多数据的可选detailed text。消息框还可以显示一个 icon 和用于接受用户响应的 standard buttons。<br /> 提供了两个使用QMessageBox的API,基于属性的API和静态函数。调用静态函数之一是更简单的方法,但是它不如使用基于属性的API灵活,并且结果信息较少。建议使用基于属性的API。<br /> 基于属性的API<br /> 要使用基于属性的API,请构造QMessageBox的实例,设置所需的属性,然后调用exec()来显示消息。最简单的配置是仅设置 message text属性。<br /> QMessageBox msgBox;<br /> msgBox.setText(“The document has been modified.”);<br /> msgBox.exec();<br /> msgBox 。exec();<br /> 用户必须单击“ OK”按钮才能关闭该消息框。GUI的其余部分将被阻止,直到关闭消息框。</p> <p>除了仅警告用户事件之外,一种更好的方法是还询问用户该如何处理。将问题存储在 informative text属性中,并将“standard buttons属性设置为所需的按钮集作为用户响应集。通过使用按位OR运算符组合StandardButtons中的值来指定按钮。按钮的显示顺序取决于平台。例如,在Windows上,“ Cancel”的左侧显示“ Save”,而在Mac OS上,顺序相反。<br /> 将您的标准按钮之一标记为default button。<br /> QMessageBox msgBox;<br /> msgBox.setText(“The document has been modified.”);<br /> msgBox.setInformativeText(“Do you want to save your changes?”);<br /> msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);<br /> msgBox.setDefaultButton(QMessageBox::Save);<br /> int ret = msgBox.exec();<br /> 这是macOS Guidelines推荐的方法。类似的准则适用于其他平台,但是请注意针对不同平台处理informative text的不同方式。</p> <p>在EXEC()槽返回StandardButtons被点击的按钮的值。<br /> switch (ret) {<br /> case QMessageBox::Save:<br /> // Save was clicked<br /> break;<br /> case QMessageBox::Discard:<br /> // Don’t Save was clicked<br /> break;<br /> case QMessageBox::Cancel:<br /> // Cancel was clicked<br /> break;<br /> default:<br /> // should never be reached<br /> break;<br /> }<br /> 要向用户提供更多信息以帮助他回答问题,请设置detailed text属性。如果设置了detail text属性,将显示Show Details …按钮。</p> <p>单击Show Details…按钮将显示详细文本。</p> <p>富文本和文本格式属性<br /> 在detailed text 属性总是被解释为纯文本。在main text 和informative text 属性可以是纯文本或富文本。这些字符串根据text format 属性的设置进行解释。默认设置为 auto-text。<br /> 请注意,对于某些包含XML元字符的纯文本字符串,自动文本rich text detection test可能会失败,导致您的纯文本字符串被错误地解释为富文本。在这些罕见的情况下,使用Qt :: convertFromPlainText()将纯文本字符串转换为视觉上等效的富文本字符串,或者使用setTextFormat()显式设置text format属性。<br /> 严重级别以及图标和像素图属性<br /> QMessageBox支持四个预定义的消息严重性级别或消息类型,它们实际上仅在它们各自显示的预定义图标上有所不同。通过将icon属性设置为predefined icons之一来指定四种预定义消息类型之一。以下规则是准则:<br /> Question<br /> 用于在正常操作期间提出问题。<br /> Information<br /> 用于报告有关正常操作的信息。<br /> Warning<br /> 用于报告非严重错误。<br /> Critical<br /> 用于报告严重错误。<br /> Predefined icons不是由QMessageBox定义的,而是由样式提供的。默认值为No Icon。否则,所有情况下的消息框都是相同的。使用标准图标时,请使用表中推荐的图标,或使用平台风格指南推荐的图标。如果没有标准图标适合您的消息框,则可以通过设置 icon pixmap属性而不是设置icon属性来使用自定义图标。<br /> 总之,设置的图标,使用either setIcon()为一个标准图示,或 setIconPixmap()为一个自定义的图标。<br /> 静态函数API<br /> 使用静态函数API构建消息框虽然很方便,但是比使用基于属性的API灵活,因为静态函数签名缺少用于设置 informative text 和detailed text属性的参数。一种解决方法是将title参数用作消息框主要文本,并将text参数用作消息框提供信息的文本。因为这样做有明显的缺点,即消息框的可读性较差,所以平台指南不建议这样做。《Microsoft Windows用户界面指南》建议使用application name 作为 window’s title,这意味着,如果除了主体文本之外还有其他内容丰富的文本,则必须将其连接到text参数。<br /> 请注意,静态函数签名的按钮参数已更改,现在可用于设置 standard buttons和default button。<br /> 静态函数可用于创建 information(), question(), warning(), 和 critical() 消息框。<br /> int ret = QMessageBox::warning(this, tr(“My Application”),<br /> tr(“The document has been modified.\n”<br /> “Do you want to save your changes?”),<br /> QMessageBox::Save | QMessageBox::Discard<br /> | QMessageBox::Cancel,<br /> QMessageBox::Save);</p> <p>Standard Dialogs 示例显示了如何使用QMessageBox和其他内置的Qt对话框。<br /> 高级用法<br /> 如果standard buttons的灵活性不足以容纳消息框,则可以使用addButton()重载,该重载采用文本和ButtonRole来添加自定义按钮。所述ButtonRole用于通过QMessageBox提示确定(而变化根据平台)屏幕上的按钮的顺序。您可以在调用exec()之后测试clickedButton()的值。例如,<br /> QMessageBox msgBox;<br /> QMessageBox msgBox;<br /> QPushButton *connectButton = msgBox.addButton(tr(“Connect”), QMessageBox::ActionRole);<br /> QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort);</p> <p>msgBox.exec();</p> <p>if (msgBox.clickedButton() == connectButton) {<br /> // connect<br /> } else if (msgBox.clickedButton() == abortButton) {<br /> // abort<br /> }</p> <p>默认键和转义键<br /> 可以使用setDefaultButton()指定默认按钮(即,按下Enter时激活的按钮)。如果未指定默认按钮,则QMessageBox尝试根据消息框中使用的按钮的按钮角色来查找一个按钮。<br /> 可以使用setEscapeButton()指定退出按钮(按下Esc时激活的按钮)。如果未指定转义按钮,则QMessageBox尝试使用以下规则找到一个:<br /> 1. 如果只有一个按钮,则在按下Esc时激活该按钮。<br /> 2. 如果有“Cancel 按钮,则当按下Esc键时该按钮被激活。<br /> 3. 如果只有一个按钮具有 the Reject role 或the No role,则该按钮是在按下Esc时激活的按钮。<br /> 如果无法使用这些规则确定退出按钮,则按Esc键无效。<br /> 另请参见QDialogButtonBox, GUI Design Handbook: Message Box, Standard Dialogs Example, 和 Application Example.</p> </div> </article> <article itemscope itemtype="http://schema.org/Article" id="post-7880" class="post-7880 post type-post status-publish format-standard hentry category-qt"> <header class="entry-header"> <h2 class="entry-title" itemprop="name"> <a itemprop="url" href="http://wiki.xuetang9.com/?p=7880" title="链向QLCDNumber 类(老九学堂C++会员友情翻译,不喜勿喷)的固定链接" rel="bookmark">QLCDNumber 类(老九学堂C++会员友情翻译,不喜勿喷)</a> </h2> <div class="entry-meta"><span class="entry-date"><a href="http://wiki.xuetang9.com/?p=7880" rel="bookmark"><time class="entry-date published" datetime="2020-05-27T14:09:42+08:00" itemprop="datepublished">5月 27, 2020</time></a></span> by <span class="author vcard" itemscope itemprop="author" itemtype="http://schema.org/Person"><a class="url fn n" href="http://wiki.xuetang9.com/?author=2889" rel="author" itemprop="url"><span itemprop="name">arklis</span></a></span><span class="sep">·</span><span class="comments-link"><a href="http://wiki.xuetang9.com/?p=7880#respond" itemprop="discussionUrl">0评论</a></span></div> </header> <div class="entry-content" itemprop="articleBody"> <p>QLCDNumber 类<br /> Detailed Description – 内容描述<br /> 它可以显示几乎任何大小的数字。 它可以显示十进制,十六进制,八进制或二进制数字。 使用display()插槽很容易连接到数据源,该插槽重载了五个参数类型中的任何一个。</p> <p>还有一些插槽可以通过setMode()更改基数,并通过setSmallDecimalPoint()更改小数点。</p> <p>当要求显示超出其范围的内容时,QLCDNumber会发出overflow()信号。 该范围由setDigitCount()设置,但setSmallDecimalPoint()也会影响它。 如果显示设置为十六进制,八进制或二进制,则显示该值的整数等效值。</p> <p>可以显示这些数字和其他符号:0 / O,1、2、3、4、5 / S,6、7、8、9 / g,减,小数点,A,B,C,D,E, F,h,H,L,o,P,r,u,U,Y,冒号,度数符号(在字符串中指定为单引号)和空格。 QLCDNumber用空格代替非法字符。</p> <p>尽管可以使用value()检索数值,但无法检索QLCDNumber对象的内容。 如果您确实需要文本,我们建议您将馈入display()插槽的信号也连接到另一个插槽,并在其中存储值。</p> <p>顺便说一句,QLCDNumber是Qt的最老部分,其根源可以追溯到Sinclair Spectrum上的BASIC程序。</p> <p>另请参见QLabel,QFrame,数字时钟示例和Tetrix示例。</p> <p>Public Functions – 公共函数<br /> QLCDNumber::QLCDNumber(uint numDigits, QWidget *parent = nullptr)<br /> 构造一个LCD编号,将位数设置为numDigits,将基数设置为小数,将小数点模式设置为“小”,并将框架样式设置为凸起的框。 segmentStyle()设置为Filled。<br /> Parent参数传递给QFrame构造函数。</p> <p>另请参见setDigitCount()和setSmallDecimalPoint()。</p> <p>QLCDNumber::QLCDNumber(QWidget *parent = nullptr)<br /> 构造一个LCD编号,将数字位数设置为5,将基数设置为小数,将小数点模式设置为“小”,并将帧样式设置为凸起框。 segmentStyle()设置为Outline。</p> <p>Parent参数传递给QFrame构造函数。</p> <p>另请参见setDigitCount()和setSmallDecimalPoint()</p> <p>QLCDNumber::~QLCDNumber()<br /> 销毁LCD编号。</p> <p>bool QLCDNumber::checkOverflow(double num) const<br /> 如果num太大而无法完整显示,则返回true;否则返回true。 否则返回false。<br /> 另请参见display(),digitCount()和smallDecimalPoint()</p> <p>bool QLCDNumber::checkOverflow(int num) const<br /> 这是一个超载的函数</p> <p>如果num太大而无法完整显示,则返回true;否则返回true。 否则返回false。<br /> 另请参见display(),digitCount()和smallDecimalPoint()。</p> <p>int QLCDNumber::digitCount() const<br /> 返回当前数字位数。<br /> 注意:属性digitCount的Getter函数。<br /> 另请参见setDigitCount()。</p> <p>intValue : int<br /> 此属性将显示的值四舍五入到最接近的整数<br /> 此属性对应于LCDNumber显示的当前值最接近的整数。 这是用于十六进制,八进制和二进制模式的值。<br /> 如果显示的值不是数字,则该属性的值为0。<br /> 默认情况下,此属性的值为0。<br /> 访问函数:<br /> int intValue<br /> void displayconst (congst QString) & s<br /> void display(int num)<br /> void display(double num)</p> <p>mode : Mode<br /> 此属性保存当前的显示模式(以数字为基)<br /> 对应于当前的显示模式,即Bin,Oct,Dec(默认)和Hex中的一种。 Dec模式可以显示浮点值,其他模式则显示等效的整数。<br /> 访问函数:<br /> QLCDNumber::Mode mode() const<br /> void setMode(QLCDNumber::Mode)<br /> 另请参见smallDecimalPoint(),setHexMode(),setDecMode(),setOctMode()和setBinMode()。</p> <p>segmentStyle : SegmentStyle<br /> 此属性保留LCDNumber的样式<br /> Style Result<br /> Filled(this is the default) Produces raised segment filled with the foreground color<br /> Outline Produces raised segment filled with the background color<br /> Flat Produces flat segment filled with the foreground color<br /> Outline和Filled将另外使用QPalette :: light()和QPalette :: dark()以获得阴影效果。<br /> 访问函数:<br /> QLCDNumber::SegmentStyle segmentStyle() const<br /> void setSegmentStyle(QLCDNumber::SegmentStyle)</p> <p>void QLCDNumber::setDigitCount(int numDigits)<br /> 将当前位数设置为numDigits。 必须在0..99的范围内。<br /> 注意:属性digitCount的设置函数。<br /> 另请参见digitCount()。</p> <p>smallDecimalPoint : bool<br /> 此属性保留小数点的样式<br /> 如果为true,则在两位数位置之间绘制小数点。 否则,它占据自己的数字位置,即被绘制在数字位置。 默认为false。<br /> 当在数字之间绘制小数点时,数字间的间隔会稍宽一些。<br /> 访问函数:<br /> bool smallDecimalPoint() const<br /> void setSmallDecimalPoint(bool)<br /> 另请参阅mode。</p> <p>intValue : double<br /> 此属性保存显示的值<br /> 此属性对应于LCDNumber显示的当前值。<br /> 如果显示的值不是数字,则该属性的值为0。<br /> 默认情况下,此属性的值为0。<br /> 访问函数:<br /> double Value() const<br /> void displayconst (congst QString) & s<br /> void display(int num)<br /> void display(double num)</p> <p>Properties – 属性<br /> digitCount : int<br /> 此属性保存当前显示的位数<br /> 对应于当前数字位数。 如果QLCDNumber :: smallDecimalPoint为false,则小数点占一位数字位置。<br /> 默认情况下,此属性的值为5。<br /> 此属性在Qt 4.6中引入。<br /> 访问函数:<br /> int digitCount() const<br /> void setDigitCount(int numDigits)<br /> 另请参见smallDecimalPoint。</p> <p>intValue : int<br /> 此属性将显示的值四舍五入到最接近的整数<br /> 此属性对应于LCDNumber显示的当前值最接近的整数。 这是用于十六进制,八进制和二进制模式的值。<br /> 如果显示的值不是数字,则该属性的值为0。<br /> 默认情况下,此属性的值为0。<br /> 访问函数:<br /> int intValue<br /> void displayconst (congst QString) & s<br /> void display(int num)<br /> void display(double num)</p> <p>mode : Mode<br /> 此属性保存当前的显示模式(以数字为基)<br /> 对应于当前的显示模式,即Bin,Oct,Dec(默认)和Hex中的一种。 Dec模式可以显示浮点值,其他模式则显示等效的整数。<br /> 访问函数:<br /> QLCDNumber::Mode mode() const<br /> void setMode(QLCDNumber::Mode)<br /> 另请参见smallDecimalPoint(),setHexMode(),setDecMode(),setOctMode</p> <p>segmentStyle : SegmentStyle<br /> 此属性保留LCDNumber的样式<br /> Style Result<br /> Filled(this is the default) Produces raised segment filled with the foreground color<br /> Outline Produces raised segment filled with the background color<br /> Flat Produces flat segment filled with the foreground color<br /> Outline和Filled将另外使用QPalette :: light()和QPalette :: dark()以获得阴影效果。<br /> 访问函数:<br /> QLCDNumber::SegmentStyle segmentStyle() const<br /> void setSegmentStyle(QLCDNumber::SegmentStyle)</p> <p>smallDecimalPoint : bool<br /> 此属性保留小数点的样式<br /> 如果为true,则在两位数位置之间绘制小数点。 否则,它占据自己的数字位置,即被绘制在数字位置。 默认为false。<br /> 当在数字之间绘制小数点时,数字间的间隔会稍宽一些。<br /> 访问函数:<br /> bool smallDecimalPoint() const<br /> void setSmallDecimalPoint(bool)<br /> 另请参阅mode。</p> <p>intValue : double<br /> 此属性保存显示的值<br /> 此属性对应于LCDNumber显示的当前值。<br /> 如果显示的值不是数字,则该属性的值为0。<br /> 默认情况下,此属性的值为0。<br /> 访问函数:<br /> double Value() const<br /> void displayconst (congst QString) & s<br /> void display(int num)<br /> void display(double num)</p> <p>Public Slots – 公共插槽<br /> void QLCDNumber::display(double num)<br /> 这是一个重载函数。<br /> 显示数字num。<br /> 注意:属性intValue的Setter函数。 属性值的Setter函数</p> <p>void QLCDNumber::display(int num)<br /> 这是一个重载函数。<br /> 显示数字num。<br /> 注意:属性intValue的Setter函数。 属性值的Setter函数。</p> <p>void QLCDNumber::display(const QString &s)<br /> 显示由字符串s表示的数字。<br /> 此版本的函数不考虑mode()和smallDecimalPoint()。<br /> 可以显示这些数字和其他符号:0 / O,1、2、3、4、5 / S,6、7、8、9 / g,减号,小数点,A,B,C,D,E, F,h,H,L,o,P,r,u,U,Y,冒号,度数符号(在字符串中指定为单引号)和空格。 QLCDNumber用空格代替非法字符。<br /> 注意:属性intValue的Setter函数。 属性值的Setter函数。</p> <p>void QLCDNumber::setBinMode()<br /> 调用setMode(Bin)。 为方便起见而提供(例如用于将按钮连接到它)。<br /> 另请参见setMode(),setHexMode(),setDecMode(),setOctMode()和mode()。</p> <p>void QLCDNumber::setDecMode()<br /> 调用setMode(Dec)。 为方便起见而提供(例如用于将按钮连接到它)。<br /> 另请参见setMode(),setHexMode(),setOctMode(),setBinMode()和mode()。</p> <p>void QLCDNumber::setHexMode()<br /> 调用setMode(Hex)。 为方便起见而提供(例如用于将按钮连接到它)。<br /> 另请参见setMode(),setDecMode(),setOctMode(),setBinMode()和mode()。</p> <p>void QLCDNumber::setOctMode()<br /> 调用setMode(Oct)。 为方便起见而提供(例如用于将按钮连接到它)。<br /> 另请参见setMode(),setHexMode(),setDecMode(),setBinMode()和mode()。</p> <p>smallDecimalPoint : bool<br /> 此属性保留小数点的样式<br /> 如果为true,则在两位数位置之间绘制小数点。 否则,它占据自己的数字位置,即被绘制在数字位置。 默认为false。<br /> 当在数字之间绘制小数点时,数字间的间隔会稍宽一些。<br /> 访问函数:<br /> bool smallDecimalPoint() const<br /> void setSmallDecimalPoint(bool)<br /> 另请参阅mode。</p> </div> </article> <article itemscope itemtype="http://schema.org/Article" id="post-7875" class="post-7875 post type-post status-publish format-standard hentry category-qt"> <header class="entry-header"> <h2 class="entry-title" itemprop="name"> <a itemprop="url" href="http://wiki.xuetang9.com/?p=7875" title="链向QLabel 类(老九学堂C++会员友情翻译,不喜勿喷)的固定链接" rel="bookmark">QLabel 类(老九学堂C++会员友情翻译,不喜勿喷)</a> </h2> <div class="entry-meta"><span class="entry-date"><a href="http://wiki.xuetang9.com/?p=7875" rel="bookmark"><time class="entry-date published" datetime="2020-05-27T14:09:04+08:00" itemprop="datepublished">5月 27, 2020</time></a></span> by <span class="author vcard" itemscope itemprop="author" itemtype="http://schema.org/Person"><a class="url fn n" href="http://wiki.xuetang9.com/?author=2889" rel="author" itemprop="url"><span itemprop="name">arklis</span></a></span><span class="sep">·</span><span class="comments-link"><a href="http://wiki.xuetang9.com/?p=7875#respond" itemprop="discussionUrl">0评论</a></span></div> </header> <div class="entry-content" itemprop="articleBody"> <p>Qlabel 类<br /> Detailed Description – 内容描述<br /> QLabel用于显示文本或图像。 没有提供用户交互功能。 标签的视觉外观可以通过各种方式进行配置,并且可以用于为另一个窗口小部件指定焦点助记键。<br /> QLabel可以包含以下任何内容类型:<br /> 目录 Setting<br /> Plain text 将QString传递给setText()。<br /> Rich text 将包含rich text的QString传递给setText()。<br /> A pixmap 将QPixmap传递给setPixmap()。<br /> A movie 将QMovie传递给setMovie()。<br /> A number 将int或double传递给setNum(),它将数字转换为plain text。<br /> Nothing 与空的plain text相同。 这是默认值。 由clear()设置。<br /> 警告:将QString传递给构造函数或调用setText()时,请确保清理输入内容,因为QLabel试图猜测它是将文本显示为纯文本还是富文本(HTML 4标记的子集)。 您可能需要显式调用setTextFormat(),例如 如果您希望文本为纯格式,但无法控制文本源(例如,当显示从Web加载的数据时)。<br /> 使用这些功能中的任何一个更改内容时,将清除以前的所有内容。<br /> 默认情况下,标签显示左对齐,垂直居中的文本和图像,其中要显示的文本中的所有选项卡都会自动展开。 但是,QLabel的外观可以通过几种方式进行调整和微调。<br /> 可以使用setAlignment()和setIndent()来调整QLabel小部件区域内内容的位置。 文本内容还可以使用setWordWrap()沿单词边界换行。 例如,此代码设置了一个下沉的面板,该面板的右下角有两行文本(两行与标签的右侧齐平):<br /> <img src="http://wiki.xuetang9.com/wp-content/uploads/2020/05/timg-4.png" alt="" /><br /> QLabel从QFrame继承的属性和函数也可以用于指定要用于任何给定标签的小部件框架。<br /> QLabel通常用作交互式窗口小部件的标签。 对于此用途,QLabel提供了一种有用的机制来添加助记符(请参阅QKeySequence),该助记符会将键盘焦点设置到另一个小部件(称为QLabel的“伙伴”)。 例如:<br /> <img src="http://wiki.xuetang9.com/wp-content/uploads/2020/05/timg-4.png" alt="" /><br /> 在此示例中,当用户按下Alt + P时,键盘焦点转移到了标签的好友(QLineEdit)。 如果好友是按钮(从QAbstractButton继承),则触发助记符将模拟按钮单击。<br /> 另请参见QLineEdit,QTextEdit,QPixmap,QMovie和GUI Design Handbook:Label</p> <p>Properties – 属性<br /> Alignment : Qt::Alignment<br /> 此属性保留标签内容的对齐方式<br /> 默认情况下,标签的内容是左对齐和垂直居中的。<br /> 访问函数:<br /> Qt::Alignment alignment() const<br /> void setAlignment(Qt::Alignment)<br /> 请参见文本</p> <p>hasSelectedText:const bool<br /> 此属性保存是否选择了任何文本<br /> 如果用户选择了部分或全部文本,则hasSelectedText()返回true;否则,返回true。 否则返回false。</p> <p>默认情况下,此属性为false。</p> <p>注意:在标签上设置的textInteractionFlags必须包括TextSelectableByMouse或TextSelectableByKeyboard。</p> <p>此属性在Qt 4.7中引入。<br /> 访问函数:<br /> bool hasSelectedText() const<br /> 另请参见selectedText()。</p> <p>Indent : int<br /> 此属性以像素为单位保留标签的文本缩进</p> <p>如果标签显示文本,则如果alignment()为Qt :: AlignLeft,则缩进将应用于左侧;如果alignment()为Qt :: AlignRight,则缩进至右侧;如果alignment()为Qt :: AlignTop,则缩进至顶部 ,如果alignment()为Qt :: AlignBottom,则返回到底部边缘。</p> <p>如果缩进为负,或者未设置缩进,则标签将按以下方式计算有效缩进:如果frameWidth()为0,则有效缩进为0。如果frameWidth()大于0,则有效缩进为一半。 小部件当前font()的“ x”字符的宽度。</p> <p>默认情况下,缩进为-1,表示有效缩进是以上述方式计算的。<br /> 访问函数:<br /> int indent() const<br /> void setIndent(int)<br /> 另请参见alignment,margin,frameWidth()和font()。</p> <p>Indent : int<br /> 此属性保存边距的宽度<br /> 边距是帧的最内像素和内容的最外像素之间的距离。<br /> 默认边距为0。<br /> 访问函数:<br /> int margin() const<br /> void setMargin(int)<br /> 另请参见indent</p> <p>openExternalLinks : bool<br /> 指定QLabel是否应该使用QDesktopServices :: openUrl()自动打开链接,而不是发出linkActivated()信号。</p> <p>注意:标签上设置的textInteractionFlags必须包含LinksAccessibleByMouse或LinksAccessibleByKeyboard。</p> <p>默认值为false。</p> <p>此属性在Qt 4.2中引入。<br /> 访问函数:<br /> bool openExternalLinks() const<br /> void setOpenExternalLinks(bool open)</p> <p>Pixmap : QPixmap<br /> 此属性保存标签的像素图<br /> 如果未设置像素图,则将返回nullptr。<br /> 设置像素图会清除以前的所有内容。 好友快捷方式(如果有)被禁用。<br /> 访问函数:<br /> const Qpixmap * pixmap() const<br /> void setPixmap(const Qpixmap &)</p> <p>scaledContents : bool<br /> 此属性保存标签是否将缩放其内容以填充所有可用空间。<br /> 启用后,标签会显示一个像素图,它将缩放该像素图以填充可用空间。<br /> 此属性的默认值为false。<br /> 访问函数:<br /> bool hasScaledContents() const<br /> void setScaledContents(bool)</p> <p>selectedText : const QString<br /> 此属性保存所选文本<br /> 如果没有选择的文本,则此属性的值为空字符串。<br /> 默认情况下,此属性包含一个空字符串。<br /> 注意:在标签上设置的textInteractionFlags必须包括TextSelectableByMouse或TextSelectableByKeyboard。<br /> 此属性在Qt 4.7中引入。<br /> 访问函数:<br /> QString selectedText() const<br /> 另请参见hasSelectedText()。</p> <p>Text : QString<br /> 此属性保存标签的文本</p> <p>如果未设置任何文本,则将返回一个空字符串。 设置文本会清除所有以前的内容。</p> <p>根据文本格式设置,文本将被解释为纯文本还是富文本。 请参见setTextFormat()。 默认设置为Qt :: AutoText; 即QLabel将尝试自动检测文本集的格式。 有关富文本的定义,请参见支持的HTML子集。</p> <p>如果已设置好友,则从新文本更新好友助记键。</p> <p>请注意,QLabel非常适合显示小型RTF文档,例如从标签的调色板和字体属性中获取其文档特定设置(字体,文本颜色,链接颜色)的小型文档。 对于大型文档,请改为以只读模式使用QTextEdit。 QTextEdit还可在必要时提供滚动条。</p> <p>注意:如果文本包含格式文本,此功能将启用鼠标跟踪。<br /> 访问函数:<br /> QString text() const<br /> void setText(const QString &)</p> <p>TextFormat : Qt::TextFormat<br /> 此属性保存标签的文本格式<br /> 有关可能选项的说明,请参见Qt :: TextFormat枚举。<br /> 默认格式为Qt :: AutoText。<br /> 访问函数:<br /> Qt::TextFormat textFormat(const)<br /> void setTextFormat(Qt::TextFormat)</p> <p>TextInteractionFlags : Qt::TextInteractionFlags<br /> 指定标签显示文本时应如何与用户输入交互。</p> <p>如果标志包含Qt :: LinksAccessibleByKeyboard,则焦点策略也会自动设置为Qt :: StrongFocus。 如果设置了Qt :: TextSelectableByKeyboard,则将焦点策略设置为Qt :: ClickFocus。</p> <p>默认值为Qt :: LinksAccessibleByMouse。<br /> 此属性在Qt 4.2中引入。<br /> 访问函数:<br /> Qt::TextInteractionFlags textInteractionFlag() const<br /> void setTextInteractionFlags(Qt::TextInteracyionFlags flags)</p> <p>wordWrap : bool<br /> 此属性保存标签的自动换行策略<br /> 如果此属性为true,则在断字时在必要时将标签文本包装起来; 否则,它根本不会被包装。<br /> 默认情况下,自动换行被禁用。</p> <p>访问函数:<br /> bool wordWrap() const<br /> void setWordWrap(cool on)</p> <p>Public Functions – 公共函数<br /> QLabel::QLabel(const QString &text, QWidget *parent =nullptr, Qt::WindowFlags f = Qt::WindowFlags())<br /> 构造一个显示文本的标签。<br /> 父项和小部件标志f,参数将传递给QFrame构造函数。<br /> 另请参见setText(),setAlignment(),setFrameStyle()和setIndent()。</p> <p>QLabel::QLabel(QWidget *parent =nullptr, Qt::WindowFlags f =Qt::WindowFlags())<br /> 构造一个空标签。<br /> 父项和小部件标志f,参数将传递给QFrame构造函数。<br /> 另请参见setAlignment(),setFrameStyle()和setIndent()。</p> <p>QLabel::~QLabel()<br /> 销毁标签。</p> <p>QWidget *QLabel::buddy() const<br /> 返回此标签的好友,如果当前未设置好友,则返回nullptr。<br /> 另请参见setBuddy()。<br /> QMovie *QLabel::movie() const<br /> 返回指向标签的影片的指针;如果未设置影片,则返回nullptr。<br /> 另请参见setMovie()。</p> <p>const QPicture *QLabel::picture() const<br /> 返回标签的图片;如果标签没有图片,则返回nullptr。<br /> 另请参见setPicture()。</p> <p>int QLabel::selectionStart() const<br /> selectionStart()返回标签中第一个选定字符的索引;如果未选择任何文本,则返回-1。</p> <p>注意:在标签上设置的textInteractionFlags必须包括TextSelectableByMouse或TextSelectableByKeyboard。</p> <p>此功能在Qt 4.7中引入。<br /> 另请参见selectedText()。</p> <p>void QLabel::setBuddy(QWidget *buddy)<br /> 将此标签的好友设置为好友。</p> <p>当用户按下此标签指示的快捷键时,键盘焦点将转移到标签的好友小部件。</p> <p>伙伴机制仅适用于QLabel,该QLabel包含文本,该文本的一个字符前面带有“&”符号。 该字符被设置为快捷键。 有关详细信息,请参见QKeySequence :: mnemonic()文档(要显示实际的与号,请使用’&&’)。</p> <p>在对话框中,您可能会创建两个数据输入小部件和一个标签,然后设置几何布局,以便每个标签位于其数据输入小部件(“伙伴”)的左侧,例如:</p> <p>使用上面的代码,当用户按下Alt + N时,焦点跳到“名称”字段,而当用户按下Alt + P时,焦点跳到“电话”字段。</p> <p>要取消设置先前设置的好友,请在将好友设置为nullptr的情况下调用此函数。</p> <p>另请参见buddy(),setText(),QShortcut和setAlignment()。</p> <p>void QLabel::setSelection(int start, int length)<br /> 从位置开始和长度字符中选择文本。</p> <p>注意:在标签上设置的textInteractionFlags必须包括TextSelectableByMouse或TextSelectableByKeyboard。</p> <p>此功能在Qt 4.7中引入。<br /> 另请参见selectedText()。</p> <p>Public Slots – 公共插槽</p> <p>void QLabel::clear()<br /> 清除所有标签内容。</p> <p>void QLabel::setMovie(QMovie *movie)<br /> 将标签内容设置为movie。 以前的所有内容都将被清除。 标签不拥有电影的所有权。<br /> 好友快捷方式(如果有)被禁用。<br /> 另请参见movie()和setBuddy()。</p> <p>void QLabel::setNum(double num)<br /> 这是一个过载功能。<br /> 将标签内容设置为包含double num文本表示形式的纯文本。 以前的所有内容都将被清除。 如果double的字符串表示形式与标签的当前内容相同,则不执行任何操作。</p> <p>好友快捷方式(如果有)被禁用。<br /> 另请参见setText(),QString :: setNum()和setBuddy()。</p> <p>void QLabel::setNum(int num)<br /> 将标签内容设置为包含整数num的文本表示形式的纯文本。 以前的所有内容都将被清除。 如果整数的字符串表示形式与标签的当前内容相同,则不执行任何操作。</p> <p>好友快捷方式(如果有)被禁用。<br /> 另请参见setText(),QString :: setNum()和setBuddy()。</p> <p>void QLabel::setPicture(const QPicture &picture)<br /> 将标签内容设置为picture。 以前的所有内容都将被清除。<br /> 好友快捷方式(如果有)被禁用。<br /> 另请参见picture()和setBuddy()。</p> <p>Reimplemented Protected Functions<br /> void QLabel::changeEvent(QEvent *ev)<br /> 重载函数:QFrame :: changeEvent(QEvent * ev)。</p> <p>void QLabel::contextMenuEvent(QContextMenuEvent *ev)<br /> 重载函数:QWidget :: contextMenuEvent(QContextMenuEvent * event)。</p> <p>bool QLabel::event(QEvent *e)<br /> 重载函数:QFrame :: event(QEvent * e)。</p> <p>void QLabel::focusInEvent(QFocusEvent *ev)<br /> 重载函数:QWidget :: focusInEvent(QFocusEvent * event)。</p> <p>bool QLabel::focusNextPrevChild(bool next)<br /> 重载函数:QWidget :: focusNextPrevChild(bool next)。</p> <p>void QLabel::keyPressEvent(QKeyEvent *ev)<br /> 重载函数:QWidget :: keyPressEvent(QKeyEvent * event)。</p> <p>void QLabel::mouseMoveEvent(QMouseEvent *ev)<br /> 重载函数:QWidget :: mouseMoveEvent(QMouseEvent * event)。</p> <p>void QLabel::mousePressEvent(QMouseEvent *ev)<br /> 重载函数:QWidget :: mousePressEvent(QMouseEvent * event)。</p> <p>void QLabel::mouseReleaseEvent(QMouseEvent *ev)<br /> 重载函数:QWidget :: mouseReleaseEvent(QMouseEvent * event)。</p> <p>void QLabel::paintEvent(QPaintEvent *)<br /> 重载函数:QFrame :: paintEvent(QPaintEvent *)。</p> <p>void QLabel::focusOutEvent(QFocusEvent *ev)<br /> 重载函数:QWidget :: focusOutEvent(QFocusEvent * event)。</p> <p>Reimplemented Public Functions<br /> int QLabel::heightForWidth(int w) const<br /> 重载函数:QWidget :: heightForWidth(int w)常量。</p> <p>QSize QLabel::minimumSizeHint() const<br /> 重新实现属性的访问功能:QWidget :: minimumSizeHint。</p> <p>QSize QLabel::sizeHint() const<br /> 重载函数:QFrame :: sizeHint()常量。</p> </div> </article> <article itemscope itemtype="http://schema.org/Article" id="post-7873" class="post-7873 post type-post status-publish format-standard hentry category-qt"> <header class="entry-header"> <h2 class="entry-title" itemprop="name"> <a itemprop="url" href="http://wiki.xuetang9.com/?p=7873" title="链向QInputDialog 类(老九学堂C++会员友情翻译,不喜勿喷)的固定链接" rel="bookmark">QInputDialog 类(老九学堂C++会员友情翻译,不喜勿喷)</a> </h2> <div class="entry-meta"><span class="entry-date"><a href="http://wiki.xuetang9.com/?p=7873" rel="bookmark"><time class="entry-date published" datetime="2020-05-27T14:06:20+08:00" itemprop="datepublished">5月 27, 2020</time></a></span> by <span class="author vcard" itemscope itemprop="author" itemtype="http://schema.org/Person"><a class="url fn n" href="http://wiki.xuetang9.com/?author=2889" rel="author" itemprop="url"><span itemprop="name">arklis</span></a></span><span class="sep">·</span><span class="comments-link"><a href="http://wiki.xuetang9.com/?p=7873#respond" itemprop="discussionUrl">0评论</a></span></div> </header> <div class="entry-content" itemprop="articleBody"> <p>QInputDialog<br /> Properties-属性</p> <p>• cancelButtonText : QString<br /> • comboBoxEditable : bool<br /> • comboBoxItems : QStringList<br /> • doubleDecimals : int<br /> • doubleMaximum : double<br /> • doubleMinimum : double<br /> • doubleStep : double<br /> • doubleValue : int<br /> • inputMode : InputMode<br /> • intMaximum : int<br /> • intMinimum : int<br /> • intStep : int<br /> • intValue : int<br /> • labelText : QString<br /> • okButtonText : QString<br /> • options : InputDialogOptions<br /> • textEchoMode : QLineEdit::EchoMode<br /> • textValue : QString</p> <p>Public Functions-公共函数</p> <p>l</p> <tr>setText(item);</p> <p>另请参见getText(), getInt(), getDouble(), 和 getMultiLineText().<br /> QString QInputDialog::getMultiLineText(QWidget <em>parent, const QString &title, const QString &label, const QString&text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = [static] Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)<br /> 静态便利函数,用于从用户那里获取多行字符串。<br /> title是显示在对话框标题栏中的文本。 标签是显示给用户的文本(应该说应该输入什么)。 文本是放置在纯文本编辑中的默认文本。 inputMethodHints是输入方法提示,如果输入方法处于活动状态,则将在编辑小部件中使用。<br /> 如果ok为非空值,那么</em> ok将被设置为true(如果用户按下OK),而false将被设置为false(如果用户按下Cancel)。 对话框的父级是父级。 该对话框将是模式对话框,并使用指定的窗口小部件标志。<br /> 如果接受对话框,则此函数返回对话框的纯文本编辑中的文本。 如果对话框被拒绝,则返回一个空QString。<br /> 使用如下静态函数:<br /> bool ok;<br /> QString text = QInputDialog::getMultiLineText(this, tr(“QInputDialog::getMultiLineText()”),<br /> tr(“Address:”), “John Doe\nFreedom Street”, &ok);<br /> if (ok && !text.isEmpty())<br /> multiLineTextLabel->setText(text);</p> <p>此功能在Qt 5.2中引入。</p> <p>另请参见getInt(),getDouble(),getItem()和getText()。<br /> QString QInputDialog::getText(QWidget *parent, const QString &title, [static] const QString &label, QLineEdit::EchoModemode = QLineEdit::Normal, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)<br /> 静态便利函数,用于从用户那里获取字符串。</p> <p>title是显示在对话框标题栏中的文本。 标签是显示给用户的文本(应该说应该输入什么)。 文本是放置在行编辑中的默认文本。 模式是线路编辑将使用的回显模式。 inputMethodHints是输入方法提示,如果输入方法处于活动状态,则将在编辑小部件中使用。</p> <p>如果ok为非空值,那么* ok将被设置为true(如果用户按下OK),而false将被设置为false(如果用户按下Cancel)。 对话框的父级是父级。 该对话框将是模式对话框,并使用指定的窗口小部件标志。</p> <p>如果对话框被接受,则此函数返回对话框行编辑中的文本。 如果对话框被拒绝,则返回一个空QString。</p> <p>使用如下静态函数:<br /> bool ok;<br /> QString text = QInputDialog::getText(this, tr(“QInputDialog::getText()”),<br /> tr(“User name:”), QLineEdit::Normal,<br /> QDir::home().dirName(), &ok);<br /> if (ok && !text.isEmpty())<br /> textLabel->setText(text);</p> <p>另请参见getInt(), getDouble(), getItem(), 和 getMultiLineText().<br /> QSize QInputDialog::minimumSizeHint() const [override virtual]<br /> 重新实现:QDialog :: minimumSizeHint()常量。<br /> void QInputDialog::open(QObject *receiver, const char *member)<br /> 此功能将其信号之一连接到接收器和成员指定的插槽。 具体信号取决于成员中指定的参数。 这些是:</p> <p>如果成员的第一个参数具有QString,则为textValueSelected()。<br /> intValueSelected(),如果成员的第一个参数具有int值。<br /> doubleValueSelected(),如果成员的第一个参数为double。<br /> 如果成员没有参数,则为acceptd()。<br /> 关闭对话框后,信号将从插槽中断开。</p> <p>此功能在Qt 4.5中引入。<br /> void QInputDialog::setDoubleRange(double min, double max)<br /> 设置在DoubleInput模式下使用时对话框接受的双精度浮点值的范围,其最小值和最大值分别由min和max指定。<br /> void QInputDialog::setIntRange(int min, int max)<br /> 设置在IntInput模式下使用时对话框可接受的整数值范围,最小值和最大值分别由min和max指定。</p> <p>void QInputDialog::setOption(QInputDialog::InputDialogOption option, bool on = true)<br /> 如果on为true,则将给定选项设置为启用。 否则,清除给定的选项。</p> <p>另请参见options和testOption()。</p> <p>void QInputDialog::setVisible(bool visible) [override virtual]<br /> 重新实现:QDialog :: sizeHint()常量。<br /> bool QInputDialog::testOption(QInputDialog::InputDialogOption option) const<br /> 如果启用给定选项,则返回true;否则,返回true。 否则,返回false。</p> <p>另请参见options和setOption()。</p> </div> </article> <nav class="navigation pagination" aria-label="文章"> <h2 class="screen-reader-text">文章导航</h2> <div class="nav-links"><span aria-current="page" class="page-numbers current">1</span> <a class="page-numbers" href="http://wiki.xuetang9.com/?paged=2&cat=624">2</a> <span class="page-numbers dots">…</span> <a class="page-numbers" href="http://wiki.xuetang9.com/?paged=5&cat=624">5</a> <a class="next page-numbers" href="http://wiki.xuetang9.com/?paged=2&cat=624"><i class="fa fa-chevron-right"></i></a></div> </nav> </div> <footer class="site-info" itemscope itemtype="http://schema.org/WPFooter"> <a href="http://cn.wordpress.org/" title="优雅的个人发布平台">由WordPress自豪地提供</a>. 主题:Flat 1.7.8 by <a rel="nofollow" href="https://themeisle.com/themes/flat/" title="Flat WordPress Theme">Themeisle</a> </footer> </div> </div> </div> </div> <script src='http://wiki.xuetang9.com/wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver=0.13.9' id='regenerator-runtime-js'></script> <script src='http://wiki.xuetang9.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0' id='wp-polyfill-js'></script> <script type='text/javascript' id='contact-form-7-js-extra'> /* <![CDATA[ */ var wpcf7 = {"api":{"root":"http:\/\/wiki.xuetang9.com\/index.php?rest_route=\/","namespace":"contact-form-7\/v1"},"cached":"1"}; /* ]]> */ </script> <script src='http://wiki.xuetang9.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=5.5.6' id='contact-form-7-js'></script> <script src='https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/jQuery/jquery.min.js?ver=10.2.1' id='jQuery-CDN-js'></script> <script src='https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/KaTeX/katex.min.js?ver=10.2.1' id='Katex-js'></script> <script src='https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/Emojify.js/js/emojify.min.js?ver=10.2.1' id='Emojify.js-js'></script> <script src='https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/ClipBoard/clipboard.min.js?ver=2.0.1' id='copy-clipboard-js'></script> <script src='https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/Prism.js/components/prism-core.min.js?ver=1.15.0' id='prism-core-js-js'></script> <script src='https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/Prism.js/plugins/autoloader/prism-autoloader.min.js?ver=1.15.0' id='prism-plugin-autoloader-js'></script> <script src='https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/Prism.js/plugins/toolbar/prism-toolbar.min.js?ver=1.15.0' id='prism-plugin-toolbar-js'></script> <script src='https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/Prism.js/plugins/line-numbers/prism-line-numbers.min.js?ver=1.15.0' id='prism-plugin-line-numbers-js'></script> <script src='https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/Prism.js/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js?ver=1.15.0' id='prism-plugin-copy-to-clipboard-js'></script> <script type='text/javascript' id='Front_Style-js-extra'> /* <![CDATA[ */ var FrontStyle = {"openLinkInNewTab":""}; /* ]]> */ </script> <script src='https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/FrontStyle/frontstyle.min.js?ver=10.2.1' id='Front_Style-js'></script> <script type="text/javascript"> (function ($) { $(document).ready(function () { $(".katex.math.inline").each(function () { var parent = $(this).parent()[0]; if (parent.localName !== "code") { var texTxt = $(this).text(); var el = $(this).get(0); try { katex.render(texTxt, el); } catch (err) { $(this).html("<span class=\"err\">" + err); } } else { $(this).parent().text($(this).parent().text()); } }); $(".katex.math.multi-line").each(function () { var texTxt = $(this).text(); var el = $(this).get(0); try { katex.render(texTxt, el, {displayMode: true}) } catch (err) { $(this).html("<span class=\"err\">" + err) } }); }) })(jQuery); </script> <script type="text/javascript"> window.onload = function () { emojify.setConfig({ img_dir: "https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/Emojify.js/images/basic",//前端emoji资源地址 blacklist: { "ids": [], "classes": ["no-emojify"], "elements": ["^script$", "^textarea$", "^pre$", "^code$"] } }); emojify.run(); } </script> <script type="text/javascript"> Prism.plugins.autoloader.languages_path = "https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.2.1/assets/Prism.js/components/"; </script> </body> </html> <!-- Page supported by LiteSpeed Cache 5.3.3 on 2023-03-23 23:17:30 -->