08. 文本框控件

一、文本框控件

  图形界面上需要输入信息,与程序进行沟通,输入数据信息的控件有单行文本控件、多行文本控件等。我们可以在终端中使用 pip 安装 pyside6 模块。

pip install pyside6

二、单行文本框控件

  QLineEdit 控件是单行文本编辑器,用于接收用户输入的字符串数据,并显示字符串数据,输入的整数和浮点数也会当作字符串数据。可以利用 int() 和 float() 函数将字符串型整数和浮点数转换成整数和浮点数。

  用 QLineEdit 类创建实例对象的方法如下。

QLineEdit(parent:QWidget=None)
QLineEdit(text:str, parent:QWidget=None)

  其中 parent窗口 或者 容器类控件text 是 QLineEdit 上 显示的本文

  QLineEdit 控件可以用于密码输入,可以进行复制、粘贴、删除等操作。它的常用方法如下:

# 实例方法
insert(text:str) -> None                            # 在光标处插入文本
text() -> str                                       # 获取真实文本,而不是显示文本
displayText() -> str                                # 获取显示文本
setMask(arg__1:QBitmap) -> None                     # 设置遮掩图像
setModified(arg__1:bool) -> None                    # 设置文本更改状态
isModified() -> bool                                # 获取文本更改状态
setPlaceholderText(arg__1:str) -> None              # 设置占位符文本(提示文本)
placeholderText() -> str                            # 获取占位符文本(提示文本)
setClearButtonEnabled(enable:bool) -> None          # 设置清除按钮是否可用
isClearButtonEnabled() -> bool                      # 获取清除按钮是否可用
setMaxLength(arg__1:int) -> None                    # 设置文本的最大长度
maxLength() -> int                                  # 获取文本的最大长度
setReadOnly(arg__1:bool) -> None                    # 设置文本是否只读
isReadOnly() -> bool                                # 获取文本是否只读
setAlignment(flag:Qt.AlignmentFlag) -> None         # 设置文本的对齐方式
setFrame(arg__1:bool) -> None                       # 设置是否显示外框
backspace() -> None                                 # 删除光标左侧或选中的文本
del_() -> None                                      # 删除光标右侧或选中的文本
isUndoAvailable() -> bool                           # 是否可以撤销操作
isRedoAvailable() -> bool                           # 是否可以重做操作
setDragEnabled(b:bool) -> None                      # 设置文本是否允许拖拽
setEchoMode(arg__1:QLineEdit.EchoMode) -> None      # 设置文本框的显示模式
setTextMargins(margins:QMargins) -> None            # 设置文本区域到外框的距离
setCompleter(completer:QCompleter) -> None          # 设置自动补全组件

# 槽函数
setText(text:str) -> None                           # 设置文本
clear() -> None                                     # 清除文本
copy() -> None                                      # 复制文本选中的文本
cut() -> None                                       # 剪切文本选中的文本
paste() -> None                                     # 粘贴文本

  由于单行文本控件可以用于输入密码,其显示的内容并不一定是输入的内容。用 setText(str) 方法 设置文本内容;用 text()方法 获取真实的文本,而不是界面上显示的文本,例如在密码输入模式下,得到的是输入的密码,而不是界面上显示的掩码;用 displayText() 方法 获取显示的文本内容

  用 setEchoMode(QLineEdit.EchoMode) 方法可以设置成密码输入方式,其中 QLineEdit.EchoMode 的取值是枚举类型,可以设置的值如下:

QLineEdit.EchoMode.Normal                       # 0,正常显示输入的字符,这是默认值
QLineEdit.EchoMode.NoEcho                       # 1,输入文字时不显示任何输入,文字内容和个数都不可见
QLineEdit.EchoMode.Password                     # 2,显示密码掩码,不显示实际输入的字符,能显示字符个数
QLineEdit.EchoMode.PasswordEchoOnEdit           # 3,在编辑的时候显示字符,不编辑的时候显示掩码

  QLineEdit 中输入的数据有时只能为整数,有时只能为浮点数,这时就需要对输入的数据进行合法性检验。QLineEdit 的合法性检验用 setValidator(QValidator) 方法,它的参数是一个 QValidator 类,QValidator 类用来检查输入内容的合法性,当输入内容合法时,才能成功输入并在输入框中显示。

  QValidator 是一个抽象类,其子类 QIntValidatorQDoubleValidator 分别用来设置 合法整数合法浮点数,还有一个子类 QRegExpValidator 结合 正则表达式 来判断输入的合法性。

  QIntValidator 设置整数范围的下限和上限,其使用方法是 QIntValidator(int,int,parent=None),其中第 1 个 int 是下限,第 2 个 int 是上限;或者用QIntValidator 的 setRange(int,int)setBottom(int)setTop(int) 方法来设置下限和上限。

  QDoubleValidator 的使用方法是 QDoubleValidator(float,float,int,parent=None),其中第 1 个 float 参数是下限,第 2 个 float 参数是上限,int 是小数的位数,同样也可通过 setRange(float,float.int)setBottom(float)setTop(float)setDecimals(int) 方法来设置下限、上限和小数位数。

  在 QLineEdit 中输入数据时,可以有辅助性的提示信息帮助快速完成输入,用 setCompleter(QCompleter) 方法 设置辅助补全的内容,其中 QCompleter辅助补全的类。创建辅助补全的方法如下。

QCompleter(completions:Sequence[str],parent:QObject=None)
QCompleter(model:QAbstractItemModel,parent:QObject=None)
QCompleter(parent:QObject]=None)

  用 QCompleter 的 setModel(QAbstractItemModel) 方法 设置数据模型。用 setCompletionMode(mode:QCompleter.CompletionMode) 方法 设置模式,其中枚举类型 QCompleter.CompletionMode 可以取 QCompleter.PopupCompletion(弹窗模式)、QCompleter.InlineCompletion(输入框内选中模式)或QCompleter.UnfilteredPopupCompletion(以弹窗模式列出所有可能的选项)。

  用代码在 QLineEdit 中插入文字或选择文字时,需要定位光标的位置,获取或移动光标的方法如下所示。

cursorBackward(mark:bool, steps:int=1) -> None      # 向左移动steps个字符,mark为True时带选中效果
cursorForward(mark:bool, steps:int=1) -> None       # 向右移动steps个字符,mark为True时带选中效果
home(mark:bool) -> None                             # 移动光标到文本开头,mark为True时带选中效果
end(mark:bool) -> None                              # 移动光标到文本末尾,mark为True时带选中效果
setCursorPosition(position:int) -> None             # 设置光标到指定位置
cursorPosition() -> int                             # 获取光标位置
cursorPositionAt(pos:QPoint) -> int                 # 获取指定位置出的光标位置

  对 QLineEdit 中的文本可以进行复制、粘贴、删除等操作,一般都需要先选择文本,然后再操作。选择文本的方法如下所示。

# 实例方法
setSelection(start:int, end:int) -> None    # 选中指定范围内的文本
deselect() -> None                          # 取消选中
hasSelectedText() -> bool                   # 判断是否选中文本
selectionLength() -> int                    # 返回选中文本的长度
selectionStart() -> int                     # 返回选中文本的起始位置
selectionEnd() -> int                       # 返回选中文本的结束位置
selectedText() -> str                       # 返回选中文本

# 槽函数
selectAll() -> None                         # 选中全部文本

  对于需要输入固定格式的文本,可以用 setInputMask() 方法来 定义这种固定的格式。例如 setInputMask("000.000.000.000")setInputMask("000.000.000.000;_) 方法都可以输入 IP 地址,后者在未输入字符的位置用下划线来表示空位;setInputMask("HH:HH:HH:HH:HH:HH")setInputMask("HH:HH:HH:HH:HH:HH;_;_") 方法都可以输入 MAC 地址;setInputMask("0000-00-00") 方法可以输入 ISO 标准格式日期,setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#") 方法可以用于输入 License 序列号,所有字母转换为大写。可以用于格式化输入的字符如下所示。

字符 含义
A 字母是必须的,取值范围为 A ~ Z, a ~ z
a 字母是允许的,但不是必须的
N 字母和数字是必须的,取值范围为 A ~ Z, a ~ z, 0 ~ 9
n ASCII 字母和数字是允许的,但不是必须的
X 任何字符都是必须的
x 任何字符都是允许的,但不是必须的
9 数字是必须的,取值范围为 0 ~ 9
0 数字是允许的,但不是必须的
D 数字是必须的,取值范围为 0 ~ 9
d 数字是允许的,但不是必须的,取值范围为 0 ~ 9
# 数字或加减符号是允许的,但不是必须的
H 十六进制数据是必须的,取值范围为 A ~ F, a ~ f, 0 ~ 9
h 十六进制数据是允许的,但不是必须的
B 二进制数据是必须的,取值范围为 0, 1
b 二进制数据是允许的,但不是必须的
> 所有字母都大写
< 所有字母都小写
! 关闭大小写转换
\ 使用 \ 去转移上述列出的特殊字符
;c 终止输入遮掩,并把空余输入设置成 c

  QLineEdit 类常用信号及其说明:

textEdited(text:str)                             # 文本被编辑时发射信号,不适用setText()方法引起的文本改变
textChanged(text:str)                            # 文本改变时发射信号,包含setText()方法引起的文本改变
cursorPositionChanged(oldPos:int, newPos:int)    # 光标位置改变时发射信号
selectionChanged()                               # 选中文本改变时发射信号
returnPressed()                                  # 按下Enter键时发射信号
editingFinished()                                # 编辑完成时发射信号,按下Enter键为编辑结束标记
inputRejected()                                  # 输入被拒绝时发射信号
import sys

from PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtWidgets import QLineEdit

class MyWidget(QWidget):
    def __init__(self):
        # 1.调用父类Qwidget类的__init__()方法
        super().__init__()
        # 2.调用setupUi()方法初始化页面
        self.setup_ui()

    def setup_ui(self):
        # 1.设置窗口的大小和位置
        self.setGeometry(400, 200, 480, 370)

        # 2.创建单行文本框对象,并指定父窗口
        self.lineEdit = QLineEdit(self)
        self.lineEdit.setGeometry(100, 100, 200, 20)

        # 3.设置单行文本框浮现内容
        self.lineEdit.setPlaceholderText("请输入内容")

        # 4.设置允许单行文本框输入的字符的最大长度
        self.lineEdit.setMaxLength(15)

        # 5.使单行文本框得到焦点
        self.lineEdit.setFocus()

        # 6.设置清空按钮
        self.lineEdit.setClearButtonEnabled(True)

        # 7.定义信号与槽的连接
        self.lineEdit.textChanged.connect(self.textChanged)

    def textChanged(self, text):
        print("你输入的文本改变了")
        print("改变后的文本为", text)

if __name__ == "__main__":
    # 1.创建一个QApplication类的实例
    app = QApplication(sys.argv)
    # 2.创建一个窗口
    window = MyWidget()
    # 3.展示窗口
    window.show()
    # 4.进入程序的主循环并通过exit()函数确保主循环安全结束
    sys.exit(app.exec())

二、多行文本框控件

  多行文本控件可以用于编辑和显示多行文本和图片,并可对文本进行格式化。多行文本编辑控件 QTextEdit 继承自 QAbstractScrollArea。QAbstractScrollArea 为其子类提供中心视口(viewport)控件,从而保证子类显示的内容超过控件窗口的范围时,提供竖直和水平滚动条。

  QTextEdit 是主要用于显示并编辑多行文本的控件,支持富文本,当文本内容超出控件显示范围时,可以显示水平和竖直滚动条。QTextEdit 不仅可以用来显示文本,还可以用来显示 html 文档。

用 QTextEdit 类创建实例对象的方法如下所示。

QTextEdit(parent:QWidget=None)
QTextEdit(text:str, parent:QWidget=None)

其中 parent窗口 或者 容器类控件text要显示的文本内容

  多行文本控件的常用方法如下:

# 实例方法
toHtml() -> str                                                     # 获取html格式的文本
toPlainText() -> str                                                # 获取纯文本格式的文本
setPlaceholderText(placeholderText:str) -> None                     # 设置占位符文本
placeholderText() -> str                                            # 获取占位符文本
createStandardContextMenu(position:QPoint) -> QMenu                 # 创建标准的右键菜单
setCurrentCharFormat(format:QCharFormat) -> None                    # 设置当前字符格式
find(exp:str, options=QTextDocument.FindFlags()) -> int             # 查找文本
print_(printer:QPrinter) -> None                                    # 打印文本
setAcceptRichText(accept:bool) -> None                              # 设置是否接受富文本
acceptRichText() -> bool                                            # 获取是否接受富文本
setCursorWidth(width:int) -> None                                   # 设置光标宽度
setTextCursor(cursor:QTextCursor) -> None                           # 设置文本光标
textCursor() -> QTextCursor                                         # 获取文本光标
setHorizontalScrollBarPolicy(arg__1:Qt.ScrollBarPolicy) -> None     # 设置水平滚动条策略
setVerticalScrollBarPolicy(arg__1:Qt.ScrollBarPolicy) -> None       # 设置垂直滚动条策略
setDocument(document:QTextDocument) -> None                         # 设置文档
setDocumentTitle(title:str) -> None                                 # 设置文档标题
currentFont() -> QFont                                              # 获取当前字体
fontFamily() -> str                                                 # 获取字体名称
fontItalic() -> bool                                                # 获取字体是否斜体
fontPointSize() -> float                                            # 获取字体大小
fontUnderline() -> bool                                             # 获取字体是否下划线
fontWeight() -> int                                                 # 获取字体粗细
setOverwriteMode(overwrite:bool) -> None                            # 设置是否允许覆盖
overwriteMode() -> bool                                             # 获取是否允许覆盖
setReadOnly(ro:bool) -> None                                        # 设置是否只读
isReadOnly() -> bool                                                # 获取是否只读
setTabStopDistance(distance:float) -> None                          # 设置tab停止距离
tabStopDistance() -> float                                          # 获取tab停止距离
textBackgroundColor() -> QColor                                     # 获取文字背景颜色
textColor() -> QColor                                               # 获取文字颜色
setUndoRedoEnabled(enable:bool) -> None                             # 设置是否允许撤销和重做
isUndoRedoEnabled() -> bool                                         # 获取是否允许撤销和重做
setWordWrapMode(policy:Qt.WordWrapMode) -> None                     # 设置换行模式
zoomInF(range:int=1) -> None                                        # 放大
canPaste() -> bool                                                  # 获取是否可以粘贴

# 槽函数
setText(text:str) -> None                                           # 设置显示的文本
append(text:str) -> None                                            # 追加文本
setPlainText(text:str) -> None                                      # 设置纯文本文字
insertPlainText(text:str) -> None                                   # 插入纯文本文字
setHtml(text:str) -> None                                           # 设置html格式文字
insertHtml(text:str) -> None                                        # 插入html格式文字
setAlignment(a:Qt.AlignmentFlag) -> None                            # 设置文字对齐方式
setCurrentFont(f:QFont) -> None                                     # 设置字体
setFontFamily(fontFamily:str) -> None                               # 设置字体名称
setFontItalic(b:bool) -> None                                       # 设置字体是否斜体
setFontPointSize(s:float) -> None                                   # 设置字体大小
setFontUnderline(b:bool) -> None                                    # 设置字体是否下划线
setFontWeight(w:int) -> None                                        # 设置字体粗细
setTextBackgroundColor(c:QColor) -> None                            # 设置文字背景颜色
setTextColor(c:QColor) -> None                                      # 设置文字颜色
zoomIn(range:int=1) -> None                                         # 放大
zoomOut(range:int=1) -> None                                        # 缩小
selectAll() -> None                                                 # 全选
clear() -> None                                                     # 清空
copy() -> None                                                      # 复制
cut() -> None                                                       # 剪切
paste() -> None                                                     # 粘贴
undo() -> None                                                      # 撤销
redo() -> None                                                      # 重做

  多行文本框常用信号及其说明如下:

textChanged()                                       # 文本改变时发射信号
selectionChanged()                                  # 选中文本改变时发射信号
copyAvailable(b:bool)                               # 复制文本时发射信号
currentCharFormatChanged(format: QTextCharFormat)   # 改变字体样式时发射信号
cursorPositionChanged()                             # 光标位置改变时发射信号
redoAvailable(b: bool)                              # 重做时发射信号
undoAvailable(b:bool)                               # 撤销时发射信号

  用 QTextEdit 的 setCurrentCharFormat(QTextCharFormat) 方法可以设置文字的字体格式,QTextCharFormat 类用于定义字体的格式参数。文字格式 QTextCharFormat的常用方法如下所示。

setFont(font:QFont, behavior:QTextCharFormat.FontPropertiesInheritanceBehavior=QTextCharFormat.FontPropertiesInheritanceBehavior.FontPropertiesAll) -> None     # 设置字体
setFontCapitalization(capitalization:QTextCharFormat.FontCapitalization) -> None    # 设置大小写
setFontFamilies(families:Sequence[str]) -> None                                     # 设置字体名称
setFontFamily(family:str) -> None                                                   # 设置字体
setFontFixedPitch(fixedPitch:bool) -> None                                          # 设置固定宽度字体
setFontItalic(italic:bool) -> None                                                  # 设置斜体
setFontKerning(enable:bool) -> None                                                 # 设置字符间距
setFontLetterSpacing(spacing:float) -> None                                         # 设置字符间距样式
setFontLetterSpacingType(letterSpacingType:QFont.SpacingType) -> None               # 设置字符间距样式
setFontWordSpacing(spacing:float) -> None                                           # 设置字符间距
setFontOverline(overline:bool) -> None                                              # 设置上划线
setFontUnderline(underline:bool) -> None                                            # 设置下划线
setUnderlineColor(color:Union[QColor, Qt.GlobalColor]) -> None                      # 设置下划线颜色
setUnderlineStyle(style:Qt.QTextCharFormat.UnderlineStyle) -> None                  # 设置下划线样式
setFontStrikeOut(strikeOut:bool) -> None                                            # 设置删除线
setTextOutline(pen:Union[Qt.PenStyle]) -> None                                      # 设置轮廓线
setSuperScriptBaseline(baseline:float:50) -> None                                   # 设置上标基线(字体高度百分比值)
setSubScriptBaseline(baseline:float=16.67) -> None                                  # 设置下标基线(字体高度百分比值)
setFontPointSize(size:int) -> None                                                  # 设置字体大小
setFontWeight(weight:int) -> None                                                   # 设置字体粗细
setFontStretch(factor:int) -> None                                                  # 设置拉伸百分比
setBaselineOffset(baseline:float) -> None                                           # 设置基线偏移
setToolTip(tip:str) -> None                                                         # 设置提示
setVerticalAlignment(alignment:Qt.AlignmentFlag) -> None                            # 设置垂直对齐
setAnchor(anchor:bool) -> None                                                      # 设置锚点
setAnchorHref(value:str) -> None                                                    # 设置锚点链接
setAnchorNames(names:Sequence[str]) -> None                                         # 设置锚点名称

  其中,用 setFont(QFont,behavior=QTextCharFormat.FontPropertiesAll) 方法设置字体,其中参数 behavior 可以取 QTextCharFormat.FontPropertiesSpecifiedOnlyQTextCharFormat.FontPropertiesAll,分别表示在没有明确改变一个属性时不改变属性的值,还是用默认的值覆盖现有的值;

  用 setUnderlineStyle(QTextCharFormat.UnderlineStyle) 方法设置下划线的风格,其中枚举值 QTextCharFormat.UnderlineStyle 可以取值如下:

QTextCharFormat.UnderlineStyle.SingleUnderline
QTextCharFormat.UnderlineStyle.DashUnderline
QTextCharFormat.UnderlineStyle.DotLine
QTextCharFormat.UnderlineStyle.DashDotLine
QTextCharFormat.UnderlineStyle.DashDotDotLine
QTextCharFormat.UnderlineStyle.WaveUnderline
QTextCharFormat.UnderlineStyle.SpellCheckUnderline

  用 setVerticalAlignment(QTextCharFormat.VerticalAlignment) 方法设置文字在竖直方向的对齐方式,枚举值QTextCharFormat.VerticalAlignment 可以取值如下:

QTextCharFormat.VerticalAlignment.AlignNormal
QTextCharFormat.VerticalAlignment.AlignSuperScript
QTextCharFormat.VerticalAlignment.AlignSubScript
QTextCharFormat.VerticalAlignment.AlignMiddle
QTextCharFormat.VerticalAlignment.AlignBottom
QTextCharFormat.VerticalAlignment.AlignTop
QTextCharFormat.VerticalAlignment.AlignBaseline

  QTextCursor 类是 QTextEdit 文档中的光标,用于捕获光标在文档中的位置,选择文字,在光标位置处插入文本、图像、文本块(段落)和表格等。用 QTextCursor 创建光标对象的方法如下所示,可以为一个文档创建多个 QTextCursor 光标。

QTextCursor()
QTextCursor(block:QTextBlock)
QTextCursor(document:QTextDocument)
QTextCursor(frame:QTextFrame)

  文本光标 QTextCursor 的常用方法如下:

setPosition(pos:int, mode:QTextCursor.MoveMode = QTextCursor.MoveMode.MoveAnchor) -> None       # 设置光标的位置

position() -> int                                                                               # 获取光标的位置
positionInBlock() -> int                                                                        # 获取光标在块内的位置
atStart() -> bool                                                                               # 判断光标是否在文本的开始
atEnd() -> bool                                                                                 # 判断光标是否在文本的结束
atBlockStart() -> bool                                                                          # 判断光标是否在块的开始
atBlockEnd() -> bool                                                                            # 判断光标是否在块的结束

setCharFormat(format:QTextCharFormat) -> None                                                   # 设置文本的格式
setBlockCharFormat(format:QTextCharFormat) -> None                                              # 设置块内文本的格式
setBlockFormat(format:QTextBlockFormat) -> None                                                 # 设置块(段落)的格式

block() -> QTextBlock                                                                           # 获取光标所在的块
charFormat() -> QTextCharFormat                                                                 # 获取光标所在的文本的格式
blockCharFormat() -> QTextCharFormat                                                            # 获取光标所在的块内文本的格式
blockFormat() -> QTextBlockFormat                                                               # 获取光标所在的块的格式

clearSelection() -> None                                                                        # 清除选择,将锚点移动到光标位置
deleteChar() -> None                                                                            # 删除选中的或当前的文字
deletePreviousChar() -> None                                                                    # 删除选中的或光标前置的文字
document() -> QTextDocument                                                                     # 获取文本文档

removeSelectedText() -> None                                                                    # 删除选中的文本
selectedText() -> str                                                                           # 获取选中的文本

insertText(text:str) -> None                                                                    # 插入文本
insertText(text:str, format:QTextCharFormat) -> None                                            # 插入文本,并设置文本格式
insertBlock() -> None                                                                           # 插入新文本块
insertBlock(format:QTextBlockFormat) -> None                                                    # 插入新文本块,并设置块格式
insertFragment(fragment:QTextDocumentFragment) -> None                                          # 插入文本片段
insertFrame(format:QTextFrameFormat) -> None                                                    # 插入框架
insertHtml(html:str) -> None                                                                    # 插入HTML
insertImage(format:QTextImageFormat) -> None                                                    # 插入带格式的图片
insertImage(image:QImagename, name:str="") -> None                                              # 插入图片
insertImage(name:str) -> None                                                                   # 插入图片
insertList(format:QTextListFormat) -> None                                                      # 插入列表
insertList(style:QTextListFormat.Style) -> None                                                 # 插入列表
insertTable(rows:int, columns:int) -> None                                                      # 插入表格
insertTable(rows:int, columns:int, format:QTextTableFormat) -> None                             # 插入带格式的表格

  如果文档中有锚点 anchor(),则在锚点位置和光标位置 position() 之间的文本会被选中。用 setPosition(pos:int,mode=QTextCursor.MoveAnchor) 方法移动光标或锚点到指定位置,参数 mode 可取 QTextCursor.MoveAnchorQTextCursor.KeepAnchor;用 setCharFormat(QTextCharFormat) 方法可以设置文本的格式;用 insertText(str)insertHtml(str) 方法插入文本;用 insertImage(QTextImageFormat)方法插入图像;用 insertTable(rows:int,cols:int) 方法插入表格。

import sys

from PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtWidgets import QTextEdit
from PySide6.QtGui import QColor, QTextOption

class MyWidget(QWidget):
    def __init__(self):
        # 1.调用父类Qwidget类的__init__()方法
        super().__init__()
        # 2.调用setupUi()方法初始化页面
        self.setup_ui()

    def setup_ui(self):
        # 1.设置窗口对象大小
        self.resize(700, 500)

        # 2.创建多行文本框对象
        textEdit = QTextEdit(self)
        textEdit.resize(500, 300)

        # 3.设置多行文本框浮现内容
        textEdit.setPlaceholderText("请输入文本内容")

        # 4.使多行文本框得到焦点
        textEdit.setFocus()

        # 5.设置文本颜色
        # textEdit.setTextColor(QColor(0, 0, 255))
        textEdit.setTextColor("blue")

        # 6.设置文本的背景颜色
        textEdit.setTextBackgroundColor(QColor(255, 0, 0))
        # textEdit.setTextBackgroundColor("red")

        # 7.设置文本换行模式
        textEdit.setWordWrapMode(QTextOption.WrapMode.WordWrap)

        # 8.设置文本只读
        textEdit.setReadOnly(True)

if __name__ == "__main__":
    # 1.创建一个QApplication类的实例
    app = QApplication(sys.argv)
    # 2.创建一个窗口
    window = MyWidget()
    # 3.展示窗口
    window.show()
    # 4.进入程序的主循环并通过exit()函数确保主循环安全结束
    sys.exit(app.exec())
posted @   星光映梦  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示