QLineEdit

是一个单行文本编辑器,允许用户输入和编辑单行纯文本

文本的设置与删除

API 作用
setText(str) 设置内容文本
insert(newText) 在光标处插入文本
text() 获取真实内容文本
displayText() 获取用户能看到的内容文本
clear() 清除文本框内容
  1. le = QLineEdit("Test",window)
  2. le.insert("uwuwuwu")
  3. print(le.text())
  4. print(le.display())

文本的输出

API 作用 代码
setEchoMode() 设置文本显示模式
QLineEdit.Normal 显示输入的默认样式 0
QLineEdit.NoEcho 不显示输入的内容 1
QLineEdit.Password 以密码密文样式显示 2
QLineEditPasswordEchoOnEdit 被编辑时明文,未被编辑时密文 3

模拟登录

  1. from PyQt5.Qt import *
  2. class AccountTool: #自定义类 用来检测账号
  3. ACCOUNT_ERROR = 1
  4. PWD_ERROR = 2
  5. SUCCESS = 3
  6. @staticmethod #设置为静态函数
  7. def check_login(account,passwd):
  8. #把账号和密码发送给服务器,等待服务器返回结果
  9. if account != "1182350036":
  10. return AccountTool.ACCOUNT_ERROR
  11. if passwd != "mly118235":
  12. return AccountTool.PWD_ERROR
  13. return AccountTool.SUCCESS
  14. class Window(QWidget):
  15. def __init__(self):
  16. super().__init__()
  17. self.setWindowTitle("QL的学习")
  18. self.resize(500, 500)
  19. self.setup_ui()
  20. self.setMinimumSize(300,300)
  21. def setup_ui(self):
  22. self.zh = QLineEdit(self)
  23. self.pwd = QLineEdit(self)
  24. self.pwd.setEchoMode(2)
  25. self.login = QPushButton("登 录", self)
  26. self.login.clicked.connect(self.login_cao)
  27. def login_cao(self):
  28. account = self.zh.text()
  29. passwd = self.pwd.text()
  30. state = AccountTool.check_login(account, passwd)
  31. if state == AccountTool.ACCOUNT_ERROR:
  32. print("账号或者密码错误")
  33. self.zh.clear()
  34. self.pwd.clear()
  35. return None
  36. if state == AccountTool.PWD_ERROR:
  37. print("账号或者密码错误")
  38. self.pwd.clear()
  39. self.pwd.setFocus()
  40. return None
  41. if state == AccountTool.SUCCESS:
  42. print("登录成功")
  43. def resizeEvent(self, evt): #设置当变换大小时跟着变换
  44. x = 180
  45. y = 35
  46. margin = 60
  47. self.zh.resize(x, y)
  48. self.pwd.resize(x, y)
  49. self.login.resize(x, y)
  50. mid = (self.width() - 180) / 2
  51. self.zh.move(mid, self.height() / 4)
  52. self.pwd.move(mid, self.zh.y() + y + margin)
  53. self.login.move(mid, self.pwd.y() + y + margin)
  54. if __name__ == '__main__':
  55. import sys
  56. app = QApplication(sys.argv)
  57. window = Window()
  58. window.show()
  59. sys.exit(app.exec_())

占位提示符

API 作用
setPlaceholderText() 设置占位符
placeholderText() 获取占位符

创建清空按钮

API 作用
setClearButtonEnabled(bool) 设置清空按钮
isClearButtonEnabled() -> bool 查看清空按钮

添加自定义行为

API 作用
QAction 设置Qaction
addAction(QAction, QLineEdit.ActionPosition) 添加控件按钮
QLineEdit.LeadingPosition 搁前面
QLineEdit.TrailingPosition 搁后面

显示隐藏密码

  1. action = QAction(self.pwd) #设置QAction
  2. action.setIcon(QIcon("../qe.jpg")) #设置图标
  3. def change():
  4. if self.pwd.echoMode() == QLineEdit.Normal: #如果当前的模式为normal
  5. self.pwd.setEchoMode(2) #设置为密码模式
  6. action.setIcon(QIcon("../qe.jpg")) #改变图标
  7. else:
  8. self.pwd.setEchoMode(0) #设置为Normal模式
  9. action.setIcon(QIcon("../test1.jpg")) #改变图标
  10. action.triggered.connect(change)
  11. self.pwd.addAction(action,QLineEdit.TrailingPosition) #给QLineEdit添加A

自动补全联想

API 作用
QCompleter([“liao”,”test”,”liao118235”],self.zh) 创建完成器
setCompleter(completer) 设置完成器
  1. completer = QCompleter(["liao","test","liao118235","1182350036"],self.zh)
  2. self.zh.setCompleter(completer)

文本内容限制

最大长度和只读

API 作用
zh.setMaxLength(14) 设置QLineEdit的长度
maxLength() 获取输入长度
setReadOnly(bool) 设置只读
isReadOnly() 判定是否为只读

规则验证 Qalidator

API 作用
QValidator 验证用户输入数据的合法性
validate 输入字符时数据检测函数
QValidator.Acceptable 通过验证
QValidator.Intermediate 不做判定的验证
QValidator.Invalid 验证不通过
QIntValidator 限制整型数据限制范围
QDoubleValidator 浮点类型数据限制范围
QRegExpValidator 通过正则表达式限定
fixup(self, input_text) 当数据不通过时调用
  1. import sys
  2. from PyQt5.Qt import *
  3. class AgeVadidator(QValidator):
  4. def validate(self, input_str,pos_int):
  5. print(input_str,pos_int)
  6. try:
  7. if 18 <= int(input_str) <= 180:
  8. return (QValidator.Acceptable,input_str,pos_int) #通过验证
  9. elif 1 <= int(input_str) <= 17:
  10. return (QValidator.Intermediate, input_str, pos_int) #中间状态
  11. else:
  12. return (QValidator.Invalid, input_str, pos_int) # 拒绝状态
  13. except:
  14. if len(input_str) == 0:
  15. return (QValidator.Intermediate, input_str, pos_int)
  16. return (QValidator.Invalid,input_str,pos_int)
  17. def fixup(self, p_str):
  18. try:
  19. if int(p_str) < 18:
  20. return "18"
  21. return "180"
  22. except:
  23. return "18"
  24. class MyAgeVadidator(QIntValidator):
  25. def fixup(self, p_str): #数值是无效状态时调用
  26. print(p_str)
  27. if len(p_str) == 0 or int(p_str) < 18:
  28. return "18"
  29. class Window(QWidget):
  30. def __init__(self):
  31. super().__init__()
  32. self.setWindowTitle("验证器")
  33. self.resize(500,500)
  34. self.setup_ui()
  35. def setup_ui(self):
  36. le = QLineEdit(self)
  37. le.move(100,100)
  38. #vadidator = AgeVadidator()
  39. #vadidator = QIntValidator(18,188)
  40. vadidator = MyAgeVadidator(18,188)
  41. le.setValidator(vadidator)
  42. le1 = QLineEdit(self)
  43. le1.move(200, 200)
  44. if __name__ == "__main__":
  45. app = QApplication(sys.argv)
  46. window = Window()
  47. window.show()
  48. sys.exit(app.exec_())

掩码限制

指定固定位置的固定数据类型,达到一个格式的上限。

image.png

  1. #总共设置5位 左边2 必须是大写字母 - 右边是数字
  2. le2.setInputMask(">AA-99;#")
  3. #座机号码 设置4个-7个数字 当没输入时为*
  4. le2.setInputMask("9999-9999999;*")

文本状态修改

标识文本内容是否被修改,默认就是False

API 作用
isModified() 查看是否被编辑
setModified(bool) 设置编辑状态

光标位置控制

True 光标移动时选择文本
False 光标移动不选择文本

API 作用
cursorBackward(True,2) 光标向左
cursorForward(True,3) 光标向右
cursorWordBackward(True) 向左移动一个单词
le.cursorWordForward(True) 向右移动一个单词
home(True) 从当前位置移动到行首
end(True) 从当前位置移动到行尾
setCursorPosition(int(len(le.text()) / 2)) 光标进入到指定位置
cursorPositionAt(QPoint(55, 5)) 以光标当前位置的像素位设置光标位
cursorPosition() 获取光标位置
  1. def cursor_move():
  2. #le.cursorBackward(True,2) #向左
  3. #le.cursorForward(True,3) #向右
  4. #le.cursorWordBackward(True) #向左移动一个单词
  5. #le.cursorWordForward(True) #向右移动一个单词
  6. #le.home(True) #从当前位置移动到行首
  7. #le.end(True) #从当前位置移动到行尾
  8. #le.setCursorPosition(int(len(le.text()) / 2)) #光标进入到指定位置
  9. print(le.cursorPositionAt(QPoint(55, 5))) #以光标当前位置的像素位设置光标位
  10. le.setFocus()
  11. btn.clicked.connect(cursor_move)

文本边距设定

API 作用
setTextMargins(int left,int top,int right,int bottom) 设置文本内容边距
getTextMargins() 获取文本内容边距
  1. le.resize(300,300)
  2. le.setStyleSheet("background-color: cyan;")
  3. le.setTextMargins(100,-150,0,0)

对齐方式

API 作用
setAlignment 设置对齐
Qt.AlignLeft 水平靠左
Qt.AlignRight 水平靠右
Qt.AlignHCenter 水平居中
Qt.AlignJustify 水平对齐
Qt.AlignTop 垂直靠上
Qt.AlignBottom 垂直靠下
Qt.AlignVCenter 垂直居中
Qt.AlignBaseline 垂直基准

常用编辑功能

API 作用
backspace() 退格
del_() 删除
clear() 清空
copy() 复制
paste() 粘贴
cut() 剪切
undo() isUndoAvailable() 撤销
redo() isRedoAvailable() 重做
setDragEnabled(bool) 设置选中文本后是否可以拖拽

文本选中

API 作用
selectAll() 选中所有
deselect() 取消选中
hasSelectedText() 是否选中文字
selectedText() 选中的文字
selectionStart() 选中的起始点
selectionEnd() 选中的末尾点
selectionLength() 选中的长度
  1. def cursor_move():
  2. #le.setSelection(2,5)
  3. le.selectAll()
  4. #le.deselect()
  5. #print(le.hasSelectedText())
  6. #print(le.selectedText())
  7. #print(le.selectionStart())
  8. le.selectionEnd()
  9. #print(le.selectionLength())
  10. #le.setFocus()
  11. btn.clicked.connect(cursor_move)

信号的使用

API 作用
textEdited( text) 文本编辑时发射的信号
textChanged(text) 文本框文本发生改变时发出的信号
returnPressed() 按下回车键发出的信号
editingFinished() 结束编辑/焦点切换发出的信号
cursorPositionChanged(int oldPos,int newPos) 光标位置发生改变时发出的信号
selectionChanged() 选中的文本发生改变时发出的信号
  1. def textEd():
  2. print("我被编辑了")
  3. le.textEdited.connect(textEd)
  4. def textCh():
  5. print("我状态变了")
  6. le.textChanged.connect(textCh)
  7. def textPr():
  8. print("我按下了回车")
  9. le.returnPressed.connect(textPr)
  10. def textEdFi():
  11. print("结束了编辑")
  12. le.editingFinished.connect(textEdFi)
  13. def textCP():
  14. print("光标发生了改变")
  15. le.cursorPositionChanged.connect(textCP)
  16. def textSC():
  17. print("选中的发生了改变")
  18. le.selectionChanged.connect(textSC)

QFrame 边框类

是一个基类, 可以选择直接使用
主要是用来控制一些边框样式:凸起,凹下,阴影,线宽

image.png

框架API

API 作用
QFrame(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()) 创建QFrame对象
setFrameShape(QFrame.Shape) 设置框架形状
setFrameStyle(int style) 设置框架样式
setFrameRect(QRect) 设置框架矩形
QFrame.NoFrame QFrame什么都没画
QFrame.Box QFrame围绕其内容绘制一个框
QFrame.Panel QFrame绘制一个面板,使内容显得凸起或凹陷
QFrame.HLine QFrame绘制一条没有框架的水平线(用作分隔符)
QFrame.VLine QFrame绘制一条无框架的垂直线(用作分隔符)
QFrame.StyledPanel 绘制一个矩形面板,其外观取决于当前的GUI样式。它可以升起或凹陷。
  1. qf = QFrame(window) #创建Frame
  2. qf.resize(100,100)
  3. qf.move(100,100)
  4. qf.setStyleSheet("background-color: green;")
  5. #qf.setFrameShape(QFrame.Box) #设置为Box矩形
  6. #qf.setFrameShape(QFrame.Panel) #设置为一个面板
  7. #qf.setFrameShadow(QFrame.Raised) #设置框架阴影为3D凸起
  8. qf.setFrameStyle(QFrame.Box | QFrame.Raised)
  9. qf.setLineWidth(6)
  10. qf.setMidLineWidth(8)
  11. print(qf.frameWidth())

框架阴影

设置框架边框阴影

API 作用
setFrameShadow(QFrame.Shadow) 设置框架阴影
QFrame.Plain 框架和内容与周围环境呈现水平;(没有任何3D效果)
QFrame.Raised 框架和内容出现; 使用当前颜色组的浅色和深色绘制3D凸起线
QFrame.Sunken 框架和内容出现凹陷; 使用当前颜色组的浅色和深色绘制3D凹陷线

框架线宽

通过控制线宽, 来达到不同的组合效果

API 作用
setLineWidth(int width) lineWidth() 外线宽度
setMidLineWidth(int width) midLineWidth() 中线宽度
frameWidth() 总宽度

QAbstractScrollArea

滚动区域的低级抽象

  1. import sys
  2. from PyQt5.Qt import *
  3. app = QApplication(sys.argv)
  4. window = QWidget()
  5. window.setWindowTitle("Test")
  6. window.resize(500,500)
  7. qe = QTextEdit("里奥",window)
  8. qe.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) #设置垂直拉伸条状态 总是开启
  9. qe.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn) #设置水平拉伸条状态 总是开启
  10. btn = QPushButton(window)
  11. btn.setIcon(QIcon("../qe.jpg"))
  12. qe.setCornerWidget(btn)
  13. window.show()
  14. sys.exit(app.exec_())

QTextEdit

是一个高级的WYSIWYG(What You See Is What You Get 所见即所得)查看器/编辑器,支持使用HTML样式标签的富文本格式。
支持的HTML4标签子集
https://doc.qt.io/qt-5/richtext-html-subset.html
如果不够, 可以考虑使用WebKit
它经过优化,可以处理大型文档并快速响应用户输入。
如果文本太大而无法在文本编辑的视口中查看,则会出现滚动条
文本编辑可以加载纯文本和富文本文件

  1. import sys
  2. from PyQt5.Qt import *
  3. class Window(QWidget):
  4. def __init__(self):
  5. super().__init__()
  6. self.setWindowTitle("Test")
  7. self.resize(500, 500)
  8. self.setup_ui()
  9. def setup_ui(self):
  10. qte = QTextEdit("Test",self)
  11. qte.move(50,50)
  12. qte.setStyleSheet("background-color: green;")
  13. if __name__ == "__main__":
  14. app = QApplication(sys.argv)
  15. window = Window()
  16. window.show()
  17. sys.exit(app.exec_())

占位文本的设置

API 作用
setPlaceholderText 设置占位置

文本内容设置

API 作用
setPlainText(str) 设置普通文本
insertPlainText(str) 插入普通文本
toPlainText() -> str 打印组件普通文本内容
setHtml(str) 设置html文本
insertHtml(str) 插入html文本
toHtml() -> str 打印组件html文本内容
setText(str) 自动识别设置文本内容
append(str) 自动识别末尾追加文本内容
clear() 清理内容

文本光标与内容设置

整个文本编辑器, 其实就是为编辑 这个文本文档 提供了一个可视化的界面
简单理解, 可以比喻成 一个doc文档, 使用word软件打开了这个文档, 你可以随意编辑

插入文本

API 作用
QTextCharFormat 创建文本文字格式,针对于部分字符的格式描述
textCursor() -> QTextCursor 创建文本光标
insertText(QString text, QTextCharFormat format) 插入文本,带格式
insertHtml(html_str) 插入HTML 字符串
  1. def gbcr(self):
  2. tcf = QTextCharFormat()
  3. tcf.setToolTip("芜湖~")
  4. tcf.setFontFamily("隶书")
  5. tcf.setFontPointSize(20)
  6. tc = self.qte.textCursor()
  7. tc.insertText("test123",tcf)

插入图片

API 作用
QTextImageFormat() 创建文本图片
insertImage(QTextImageFormat) 插入图片,可以自定义参数
insertImage(QTextImageFormat, QTextFrameFormat.Position) 插入图片,并设置图片浮动位置
insertImage(name_str) 直接添加图片,无任何参数
  1. def gbcr(self):
  2. tc = self.qte.textCursor()
  3. tif = QTextImageFormat()
  4. tif.setName("../qe.jpg")
  5. tif.setWidth(100)
  6. tif.setHeight(100)
  7. tc.insertImage(tif)

插入文本片段

API 作用
QTextDocumentFragment.fromHtml(“

xxx

“)
创建HTML句子对象
QTextDocumentFragment.fromPlainText(“123”) 创建Plain句子对象
  1. def gbcr(self):
  2. tc = self.qte.textCursor()
  3. tdf = QTextDocumentFragment.fromHtml("<h1>xxx</h1>")
  4. tdf1 = QTextDocumentFragment.fromPlainText("<h1>xxx</h1>")
  5. tc.insertFragment(tdf1)

插入列表

API 作用
insertList(QTextListFormat) -> QTextList 在当前位置插入一个新块,并使其成为具有给定格式的新创建列表的第一个列表项。返回创建的列表
createList(QTextListFormat ) -> QTextList 创建并返回具有给定格式的新列表,并使当前段落的光标位于第一个列表项中
QTextListFormat.Style 列表符号样式
QTextListFormat 列表样式
setIndent(1) 设置缩进
setNumberPrefix(“<<”) 设置前缀
setNumberSuffix(“<<”) 设置后缀
setStyle(QTextListFormat_Style) 设置缩进样式

image.png

  1. def gbcr(self):
  2. tc = self.qte.textCursor() #创建光标
  3. # tl = tc.insertList(QTextListFormat.ListCircle) #插入列表 圆圈
  4. # tl = tc.insertList(QTextListFormat.ListDecimal) #十进制数
  5. # tl = tc.createList(QTextListFormat.ListDisc)
  6. tlf = QTextListFormat() #创建列表样式类
  7. #设置样式
  8. tlf.setIndent(1) #设置缩进
  9. tlf.setNumberPrefix("<<")
  10. tlf.setNumberSuffix("<<")
  11. tlf.setStyle(QTextListFormat.ListDecimal)
  12. tl = tc.createList(tlf)

插入表格

  1. def gbcr(self):
  2. tc = self.qte.textCursor() #创建qte(QTextEdit)的textCursor类
  3. ttf = QTextTableFormat() #创建文本表格格式
  4. ttf.setAlignment(Qt.AlignRight) #设置对齐 右对齐
  5. ttf.setCellPadding(6) #设置填充为6
  6. ttf.setCellSpacing(13) #设置间距为13
  7. ttf.setColumnWidthConstraints((QTextLength(QTextLength.PercentageLength,50),
  8. QTextLength(QTextLength.PercentageLength,40),
  9. QTextLength(QTextLength.PercentageLength,10)))
  10. #设置列宽约束
  11. #文本宽度设置为50 ,40 ,10
  12. tc.insertTable(5,3,ttf) #添加5行3列 类型为ttf
  13. QTextTable #可以查看上面一行代码可以调用的函数

插入文本块

  1. def gbcr(self):
  2. tc = self.qte.textCursor()
  3. tbf = QTextBlockFormat() #创建文本块格式
  4. tcf = QTextCharFormat() #创建文字格式
  5. tcf.setFontFamily("隶书") #设置文字字体
  6. tcf.setFontItalic(True) #设置文字是否倾斜
  7. tcf.setFontPointSize(30) #设置文字大小
  8. tbf.setAlignment(Qt.AlignRight)
  9. tbf.setRightMargin(100) #对于右侧的边距
  10. tbf.setIndent(3) #设置缩进为3
  11. tc.insertBlock(tbf,tcf)
  12. self.qte.setFocus() #获得焦点

插入文本框架

  1. def gbcr(self):
  2. tc = self.qte.textCursor()
  3. tff = QTextFrameFormat() #创建框架样式
  4. tff.setBorder(10) #设置边框为10
  5. tff.setBorderBrush(QColor(100,50,50)) #设置边框颜色
  6. tff.setRightMargin(50) #设置距离右边的间隔
  7. tc.insertFrame(tff)
  8. doc = self.qte.document()
  9. root_doc = doc.rootFrame()
  10. root_doc.setFrameFormat(tff)

格式操作

API 作用
setBlockCharFormat(QTextCharFormat) 设置要格式化的当前块(或选择中包含的所有块)的块char 格式
setBlockFormat(QTextBlockFormat) 设置当前块的块格式(或选择中包含的所有块)以进行格式化
setCharFormat(QTextCharFormat) 将光标的当前字符格式设置为给定格式。如果光标有选择,则给定格式应用于当前选择
mergeBlockCharFormat(QTextCharFormat) 合并当前块的char格式
mergeBlockFormat(QTextBlockFormat) 合并当前块的格式
mergeCharFormat(QTextCharFormat) 合并当前字符格式
  1. def gszshb(self):
  2. tc = self.qte.textCursor()
  3. tcf = QTextCharFormat()
  4. tcf.setFontFamily("幼圆")
  5. tcf.setFontPointSize(30)
  6. tcf.setFontOverline(True)
  7. tcf.setFontUnderline(True)
  8. tc.setCharFormat(tcf) #将格式设置在选中的字符上
  9. tcf2 = QTextCharFormat()
  10. tcf2.setFontStrikeOut(True)
  11. tc.mergeCharFormat(tcf2) #合并新块和老块
  12. return None
  13. tc = self.qte.textCursor()
  14. tbf = QTextBlockFormat()
  15. tbf.setAlignment(Qt.AlignCenter)
  16. tbf.setIndent(2)
  17. tc.setBlockFormat(tbf) #设置当前块的块格式
  18. return None
  19. tc = self.qte.textCursor()
  20. tcf = QTextCharFormat()
  21. tcf.setFontFamily("幼圆")
  22. tcf.setFontPointSize(30)
  23. tcf.setFontOverline(True)
  24. tcf.setFontUnderline(True)
  25. #tc.setBlockCharFormat(tcf) #设置格式化的当前块
  26. tc.setBlockFormat(tcf)

获取格式内容

API 作用
block() 获取光标所在的文本块
blockFormat() 获取光标所在的文本块
blockCharFormat() 获取光标所在的文本块字符格式
blockNumber() 获取光标所在的文本块编号
charFormat() 获取文本字符格式
currentFrame() 获取当前所在的框架
currentList() 获取当前所在的文本列表
currentTable() 获取当前的表格
  1. def nrgshq(self):
  2. tc = self.qte.textCursor()
  3. # print(tc.block().text()) #打印该行的内容
  4. print(tc.blockNumber()) #打印块的编号
  5. print(tc.currentList()) #打印段落的列表 .count() 获取列表数量

光标选中

  1. def wbxz(self):
  2. tc = self.qte.textCursor()
  3. # tc.setPosition(6,QTextCursor.KeepAnchor)
  4. # 设置生成要移动的光标位置 设置移动模式
  5. # tc.movePosition(QTextCursor.Up, QTextCursor.MoveAnchor, 1)
  6. # 移动光标
  7. tc.select(QTextCursor.BlockUnderCursor) #选中该行 需要反向设置
  8. self.qte.setTextCursor(tc) # 此时设置生成的光标位置
  9. self.qte.setFocus()

选中内容的获取

  1. def wbxznrhq(self):
  2. tc = self.qte.textCursor()
  3. #print(tc.selectedText()) #打印选中的内容
  4. #print(tc.selection().toPlainText()) #父类是QTextDocumentFragment
  5. #打印选中的文本
  6. print(tc.selectedTableCells()) #打印表格的选中范围

删除选中的字符

  1. def wbxznrhq(self):
  2. tc = self.qte.textCursor()
  3. #tc.deleteChar() #删除选中的文本
  4. # tc.deletePreviousChar() #如果没选中则删除光标前一个
  5. #如果选中了则删除选中的文本

位置判定

  1. def wbxznrhq(self):
  2. tc = self.qte.textCursor()
  3. print("*" * 15)
  4. print(tc.atBlockEnd()) #判断是否在文本块末尾
  5. print(tc.atBlockStart()) #判断是否在文本块开头
  6. print(tc.atEnd()) #判断是否在文档末尾
  7. print(tc.atStart()) #判断是否在文档开始
  8. print(tc.columnNumber()) #显示在文档第几列
  9. print(tc.position()) #光标位置
  10. print(tc.positionInBlock()) #在文本块中的位置

开始和结束编辑块

  1. def wbxznrhq(self):
  2. tc = self.qte.textCursor()
  3. tc.beginEditBlock()
  4. tc.endEditBlock()

自动化格式设置

  1. self.qte.setAutoFormatting(QTextEdit.AutoBulletList)

换行模式设置

  1. def wbxznrhq(self):
  2. # self.qte.setLineWrapMode(QTextEdit.NoWrap) #取消软换行
  3. # self.qte.setLineWrapMode(QTextEdit.FixedPixelWidth) #设置行的像素宽度 配合:
  4. # self.qte.setLineWrapColumnOrWidth(220) #设置像素
  5. self.qte.setLineWrapMode(QTextEdit.FixedColumnWidth) # 设置行有多少列
  6. self.qte.setLineWrapColumnOrWidth(8) #设置8列
  7. self.qte.setWordWrapMode(QTextOption.WordWrap) # 以单词/空格来换行

覆盖模式

切换覆盖模式,修改文本内容

  1. def wbxznrhq(self):
  2. self.qte.setOverwriteMode(True)

光标设置

提示处于覆盖模式

  1. def wbxznrhq(self):
  2. if self.qte.overwriteMode():
  3. self.qte.setOverwriteMode(False)
  4. self.qte.setCursorWidth(1)
  5. else:
  6. self.qte.setOverwriteMode(True)
  7. self.qte.setCursorWidth(10)

对其方式

  1. self.qte.setAlignment(Qt.AlignCenter) # 设置单行居中
  2. Right
  3. Left

字体设置

image.png