zoukankan      html  css  js  c++  java
  • PyQt5Day17--输入控件QTextEdit纯文本输入

    1、QTextEdit简介

      是一个高级的查看器/编辑器,支持使用HTML样式标签的高文本格式;

      可以处理大型文档并快速响应用户输入;

      适用于段落和字符;

      文本编辑可以加载纯文本和高文本文件。

    2、功能作用——占位文本设置

    (1)框架

    (2)功能操作及展示

    1 # 占位文本提示
    2 def 占用文本的提示(self):
    3     self.te.setPlaceholderText('请输入你的个人简介')
    4     print(self.te.placeholderText())

    3、功能作用——内容设置

    (1)框架

    (2)功能操作及展示:普通文本、HTML、设置文本、追加文本、清空

     1 from PyQt5.Qt import *
     2 
     3 class Window(QWidget):
     4     def __init__(self):
     5         super().__init__()
     6         self.setWindowTitle("QTextEdit")
     7         self.resize(500, 500)
     8         self.setup_ui()
     9 
    10     def setup_ui(self):
    11         te = QTextEdit("xx",self)
    12         self.te = te
    13         te.move(50,50)
    14         te.resize(300,300)
    15         te.setStyleSheet('background-color:cyan')
    16         # self.占用文本的提示()
    17         self.文本内容的设置()
    18 
    19 
    20         test_btn = QPushButton(self)
    21         test_btn.move(10,10)
    22         test_btn.setText("测试按钮")
    23         test_btn.pressed.connect(self.btn_test)
    24 
    25     def btn_test(self):
    26         # 清空设置
    27         self.te.setText("")
    28         self.te.clear()
    29 
    30         print(self.te.document())
    31         print(self.te.textCursor())
    32 
    33 
    34     def 文本内容的设置(self):
    35         # 设置普通文本内容
    36         # self.te.setPlainText("<h1>xxx</h1>")
    37         # self.te.insertPlainText("<h1>xxx</h1>") # 不覆盖至之前的内容,在光标处插入
    38         # print(self.te.toPlainText()) # 获取内容
    39 
    40         # 富文本操作
    41         # self.te.setHtml("<h1>xxx</h1>")
    42         # self.te.insertHtml("<h2>牛逼<h2/>")
    43         # print(self.te.toHtml())
    44 
    45         # 设置文本(自动判定)
    46         # self.te.setText("<h1>ooo</h1>")
    47 
    48         # 追加文本(自动识别)
    49         self.te.append("<h3>www<h3/>")  # 在文本的末尾追加
    50 
    51     # 占位文本提示
    52     def 占用文本的提示(self):
    53         self.te.setPlaceholderText('请输入你的个人简介')
    54 
    55 
    56 if __name__ == '__main__':
    57     import sys
    58 
    59     app=QApplication(sys.argv)
    60 
    61     window=Window()
    62     window.show()
    63     sys.exit(app.exec_())

    (3)文本光标

      ① 添加内容

     1 # *********插入框架***********begin
     2 tc = self.te.textCursor()
     3 tff = QTextFrameFormat()
     4 tff.setBorder(10)
     5 tff.setBorderBrush(QColor(100,50,50))
     6 tff.setRightMargin(50)
     7 tc.insertFrame(tff)
     8 
     9 doc = self.te.document()
    10 root_frame = doc.rootFrame() # 嵌入另一个框架
    11 root_frame.setFrameFormat(tff)
    12 
    13 return None
    14 # *********插入框架***********end
    15 
    16 # *********插入文本块***********begin
    17 tc = self.te.textCursor()
    18 tbf = QTextBlockFormat()
    19 tcf = QTextCharFormat()
    20 tcf.setFontFamily('隶书')
    21 tcf.setFontItalic(True) # 设置肢体倾斜
    22 tcf.setFontPointSize(30)
    23 tbf.setAlignment(Qt.AlignRight)
    24 tbf.setRightMargin(100)
    25 # tbf.setIndent(3)
    26 tc.insertBlock(tbf,tcf) # 加入段落格式与文本格式
    27 self.te.setFocus()
    28 
    29 return None
    30 # *********插入文本块***********end
    31 
    32 # *********插入表格***********begin
    33 tc = self.te.textCursor()
    34 # tc.insertTable(5,3)
    35 ttf = QTextTableFormat()
    36 ttf.setAlignment(Qt.AlignRight) # 右对齐
    37 ttf.setCellPadding(6) # 内边距
    38 ttf.setCellSpacing(3) # 外边距
    39 ttf.setColumnWidthConstraints((QTextLength(QTextLength.PercentageLength,50),
    40                                QTextLength(QTextLength.PercentageLength,30),
    41                                QTextLength(QTextLength.PercentageLength,10))) # 宽度的约束
    42 table = tc.insertTable(5,3,ttf)
    43 table.appendColumns(2) # 增加2列
    44 return None
    45 # *********插入表格***********end
    46 
    47 # *********插入列表2***********begin
    48 tc = self.te.textCursor()
    49 tlf = QTextListFormat()
    50 tlf.setIndent(3) # 缩进3个tab键
    51 tlf.setNumberPrefix("<<<")  # 前缀
    52 tlf.setNumberSuffix(">>>")  # 后缀
    53 tlf.setStyle(QTextListFormat.ListDecimal)
    54 tl = tc.createList(tlf)
    55 print(tl)
    56 return None
    57 # *********插入列表2***********end
    58 # *********插入列表1***********begin
    59 tc = self.te.textCursor()
    60 # tl = tc.insertList(QTextListFormat.ListCircle) # 列表的左边为圆圈
    61 # tl = tc.insertList(QTextListFormat.ListDecimal) # 列表的左边为数字
    62 tl = tc.createList(QTextListFormat.ListDecimal) # 创建(无论光标在哪儿,都将其变成一行)
    63 print(tl)
    64 return None
    65 # *********插入列表1***********end
    66 
    67 # *********插入句子***********begin
    68 tc = self.te.textCursor()
    69 tdf = QTextDocumentFragment.fromHtml("<h1>xxx<h1/>")
    70 tc.insertFragment(tdf)
    71 return None
    72 # *********插入句子***********end
    73 
    74 # *********插入图片***********begin
    75 tc = self.te.textCursor()
    76 tif = QTextImageFormat()
    77 tif.setName('xxx.png')
    78 tif.setWidth(100)
    79 tif.setHeight(100)
    80 # tc.insertImage(tif) # 插入图片,记住这一种
    81 # tc.insertImage(tif,QTextFrameFormat.FloatRight) # 插入图片靠右
    82 tc.insertImage('close.png')  # 通过字符串插入图片
    83 return None
    84 # *********插入图片***********end
    85 
    86 # *********插入文本与超链接***********begin
    87 tcf = QTextCharFormat()
    88 tcf.setToolTip("fxb博客地址")
    89 tcf.setFontFamily('隶书')
    90 tcf.setFontPointSize(20)
    91 tc = self.te.textCursor()
    92 tc.insertText("itlike.com", tcf)  # 插入文本,并修改格式
    93 
    94 tc.insertHtml("<a href='http://52studyit.com'>hello</a>")  # 插入超链接
    95 # *********插入文本与超链接***********end
    添加内容

      ② 设置和合并格式 

     1 # *******************文本光标——设置和合并格式**********************开始
     2 from PyQt5.Qt import *
     3 
     4 class Window(QWidget):
     5     def __init__(self):
     6         super().__init__()
     7         self.setWindowTitle("QTextEdit")
     8         self.resize(500, 500)
     9         self.setup_ui()
    10 
    11     def setup_ui(self):
    12         te = QTextEdit("xx",self)
    13         self.te = te
    14         te.move(50,50)
    15         te.resize(300,300)
    16         te.setStyleSheet('background-color:cyan')
    17 
    18         test_btn = QPushButton(self)
    19         test_btn.move(10,10)
    20         test_btn.setText("测试按钮")
    21         test_btn.pressed.connect(self.btn_test)
    22 
    23     def btn_test(self):
    24         self.格式设置和合并()
    25 
    26     def 格式设置和合并(self):
    27         # *********mergeBlockFormat***********begin
    28         tc = self.te.textCursor()
    29         tcf1 = QTextCharFormat()
    30         tcf1.setFontFamily('幼圆')
    31         tcf1.setFontPointSize(30)
    32         tcf1.setFontOverline(True)  # 上划线
    33         tcf1.setFontUnderline(True)  # 下划线
    34         tc.setCharFormat(tcf1)
    35 
    36         tcf2 = QTextCharFormat()
    37         tcf2.setFontStrikeOut(True)
    38         # tc.setCharFormat(tcf2) # 单独作用,两个功能不能同时
    39         tc.mergeCharFormat(tcf2) # 格式合并
    40         return None
    41         # *********mergeBlockFormat***********end
    42         # *********setCharFormat***********begin
    43         # 区别与setBlockCharFormat,选中文本而起作用
    44         tc = self.te.textCursor()
    45         tcf = QTextCharFormat()
    46         tcf.setFontFamily('幼圆')
    47         tcf.setFontPointSize(30)
    48         tcf.setFontOverline(True)  # 上划线
    49         tcf.setFontUnderline(True)  # 下划线
    50         tc.setCharFormat(tcf)
    51         return None
    52         # *********setCharFormat***********end
    53         # *********setBlockFormat***********begin
    54         tc = self.te.textCursor()
    55         tbf = QTextBlockFormat()
    56         tbf.setAlignment(Qt.AlignCenter) # 居中对齐
    57         tbf.setIndent(2) # 缩进
    58         tc.setBlockFormat(tbf)
    59         return None
    60         # *********setBlockFormat***********end
    61         # *********setBlockCharFormat***********begin
    62         tc = self.te.textCursor()  # 文本光标对象
    63         tcf = QTextCharFormat()
    64         tcf.setFontFamily('幼圆')
    65         tcf.setFontPointSize(30)
    66         tcf.setFontOverline(True)  # 上划线
    67         tcf.setFontUnderline(True)  # 下划线
    68         tc.setBlockCharFormat(tcf)
    69         # *********setBlockCharFormat***********end
    70 
    71 if __name__ == '__main__':
    72     import sys
    73 
    74     app=QApplication(sys.argv)
    75 
    76     window=Window()
    77     window.show()
    78     sys.exit(app.exec_())
    79 # *******************文本光标——设置和合并格式**********************结束
    设置和合并格式

      ③ 获取内容和格式相关

     1 # *******************文本光标——获取内容和格式相关**********************开始
     2 from PyQt5.Qt import *
     3 
     4 class Window(QWidget):
     5     def __init__(self):
     6         super().__init__()
     7         self.setWindowTitle("QTextEdit")
     8         self.resize(500, 500)
     9         self.setup_ui()
    10 
    11     def setup_ui(self):
    12         te = QTextEdit("xx",self)
    13         self.te = te
    14         te.move(50,50)
    15         te.resize(300,300)
    16         te.setStyleSheet('background-color:cyan')
    17 
    18         test_btn = QPushButton(self)
    19         test_btn.move(10,10)
    20         test_btn.setText("测试按钮")
    21         test_btn.pressed.connect(self.btn_test)
    22 
    23         # 插入列表
    24         tlf = QTextListFormat()
    25         tlf.setIndent(3)
    26         tlf.setNumberPrefix('<<')
    27         tlf.setNumberSuffix('>>')
    28         tlf.setStyle(QTextListFormat.ListDecimal)
    29         te.textCursor().createList(tlf)
    30 
    31     def btn_test(self):
    32         self.获取内容和格式相关()
    33 
    34     def 获取内容和格式相关(self):
    35         tc = self.te.textCursor()
    36         print(tc.block().text()) # 获取光标所在的文本
    37         print(tc.blockNumber()) # 获取光标所在的文本块编号(段落编号)
    38         print(tc.currentList().count()) # 获取当前所在的文本列表
    39 
    40 if __name__ == '__main__':
    41     import sys
    42 
    43     app=QApplication(sys.argv)
    44 
    45     window=Window()
    46     window.show()
    47     sys.exit(app.exec_())
    48 # *******************文本光标——获取内容和格式相关**********************结束
    获取内容和格式相关

      ④ 文本选中和清空

     1 # *******************文本光标——文本选中和清空**********************开始
     2 from PyQt5.Qt import *
     3 
     4 class Window(QWidget):
     5     def __init__(self):
     6         super().__init__()
     7         self.setWindowTitle("QTextEdit")
     8         self.resize(500, 500)
     9         self.setup_ui()
    10 
    11     def setup_ui(self):
    12         te = QTextEdit("xx",self)
    13         self.te = te
    14         te.move(50,50)
    15         te.resize(300,300)
    16         te.setStyleSheet('background-color:cyan')
    17 
    18         test_btn = QPushButton(self)
    19         test_btn.move(10,10)
    20         test_btn.setText("测试按钮")
    21         test_btn.pressed.connect(self.btn_test)
    22 
    23         # 插入表格
    24         te.textCursor().insertTable(5,3)
    25 
    26     def btn_test(self):
    27         self.文本选中和清空()
    28 
    29     def 文本选中和清空(self):
    30         # *********选中的位置获取***********begin
    31         tc = self.te.textCursor()
    32         # print(tc.selectionStart()) # 光标开始位置
    33         # print(tc.selectionEnd()) # 光标结束位置
    34         # tc.clearSelection() # 取消选中
    35         # self.te.setTextCursor(tc)
    36         # print(tc.hasSelection()) # 查看是否选中内容
    37         tc.removeSelectedText() # 移除选中内容
    38         self.te.setFocus()
    39         return None
    40         # *********选中的位置获取***********end
    41         
    42         # *********选中内容获取***********begin
    43         tc = self.te.textCursor()
    44         # print(tc.selectedText())
    45         # print(tc.selection().toPlainText())
    46         print(tc.selectedTableCells()) # 获取表格选中的范围
    47         return None
    48         # *********选中内容获取***********end
    49 
    50         # *********选中+补充***********begin
    51         tc = self.te.textCursor()
    52         # tc.setPosition(6) # 设置光标位置
    53         # tc.movePosition(QTextCursor.StartOfLine,QTextCursor.MoveAnchor,1) # 光标移至段落开头
    54         # tc.movePosition(QTextCursor.StartOfLine,QTextCursor.KeepAnchor,1) # 选中到当前行首之间的内容
    55         # tc.movePosition(QTextCursor.Up,QTextCursor.KeepAnchor,1) # 选中到当前行光标与第一行段落同一位置光标之间的内容
    56         # tc.select(QTextCursor.BlockUnderCursor) # 选中当前光标下的文本块
    57         tc.select(QTextCursor.WordUnderCursor)  # 选中当前光标下的单词
    58         self.te.setTextCursor(tc)  # 反向设置回去
    59         self.te.setFocus()
    60         # *********选中+补充***********end
    61 
    62 if __name__ == '__main__':
    63     import sys
    64 
    65     app=QApplication(sys.argv)
    66 
    67     window=Window()
    68     window.show()
    69     sys.exit(app.exec_())
    70 # *******************文本光标——文本选中和清空**********************结束
    文本选中和清空

      ⑤ 删除内容

    1 # *********删除文本字符***********begin
    2 tc = self.te.textCursor()
    3 # tc.deleteChar() # 删除光标右侧的内容(如果没有选中内容)
    4 tc.deletePreviousChar()
    5 self.te.setFocus()
    6 return None
    7 # *********删除文本字符***********end
    删除文本字符

      ⑥ 位置相关

     1 # *******************文本光标——位置相关**********************开始
     2 from PyQt5.Qt import *
     3 
     4 class Window(QWidget):
     5     def __init__(self):
     6         super().__init__()
     7         self.setWindowTitle("QTextEdit")
     8         self.resize(500, 500)
     9         self.setup_ui()
    10 
    11     def setup_ui(self):
    12         te = QTextEdit("xx",self)
    13         self.te = te
    14         te.move(50,50)
    15         te.resize(300,300)
    16         te.setStyleSheet('background-color:cyan')
    17 
    18         test_btn = QPushButton(self)
    19         test_btn.move(10,10)
    20         test_btn.setText("测试按钮")
    21         test_btn.pressed.connect(self.btn_test)
    22 
    23         # 插入表格
    24         te.textCursor().insertTable(5,3)
    25 
    26     def btn_test(self):
    27         self.位置相关()
    28 
    29     def 位置相关(self):
    30         tc = self.te.textCursor()
    31         print('是否在段落的结尾',tc.atBlockEnd())
    32         print('是否在段落的开始',tc.atBlockStart())
    33         print('是否在文档的结尾',tc.atEnd())
    34         print('是否在文档的开始',tc.atStart())
    35         print('在第几列',tc.columnNumber())
    36         print('光标位置',tc.position())
    37         print('在文本块中的位置',tc.positionInBlock())
    38 
    39 if __name__ == '__main__':
    40     import sys
    41     app=QApplication(sys.argv)
    42     window=Window()
    43     window.show()
    44     sys.exit(app.exec_())
    45 # *******************文本光标——位置相关**********************结束
    位置相关

      ⑦ 开始和结束编辑标识

     1 # *******************文本光标——开始和结束编辑标识***********************开始
     2 from PyQt5.Qt import *
     3 
     4 class Window(QWidget):
     5     def __init__(self):
     6         super().__init__()
     7         self.setWindowTitle("QTextEdit")
     8         self.resize(500, 500)
     9         self.setup_ui()
    10 
    11     def setup_ui(self):
    12         te = QTextEdit("xx",self)
    13         self.te = te
    14         te.move(50,50)
    15         te.resize(300,300)
    16         te.setStyleSheet('background-color:cyan')
    17 
    18         test_btn = QPushButton(self)
    19         test_btn.move(10,10)
    20         test_btn.setText("测试按钮")
    21         test_btn.pressed.connect(self.btn_test)
    22 
    23         # 插入表格
    24         te.textCursor().insertTable(5,3)
    25 
    26     def btn_test(self):
    27         self.开始和结束编辑标识()
    28 
    29     def 开始和结束编辑标识(self):
    30         tc = self.te.textCursor()
    31 
    32         tc.beginEditBlock() # 以下操作整合为一个操作
    33         tc.insertText('123')
    34         tc.insertBlock()
    35         tc.insertText('456')
    36         tc.insertBlock()
    37         tc.endEditBlock() # 以上操作整合为一个操作
    38 
    39         tc.insertText('789')
    40         tc.insertBlock()
    41 
    42 if __name__ == '__main__':
    43     import sys
    44     app=QApplication(sys.argv)
    45     window=Window()
    46     window.show()
    47     sys.exit(app.exec_())
    48 # *******************文本光标——开始和结束编辑标识***********************结束
    开始和结束编辑标识

    4、功能作用——自动格式化

    (1)框架

    (2)功能操作及展示

     1 # *******************自动格式化**********************开始
     2 from PyQt5.Qt import *
     3 
     4 class Window(QWidget):
     5     def __init__(self):
     6         super().__init__()
     7         self.setWindowTitle("QTextEdit")
     8         self.resize(500, 500)
     9         self.setup_ui()
    10 
    11     def setup_ui(self):
    12         te = QTextEdit("xx",self)
    13         self.te = te
    14         te.move(50,50)
    15         te.resize(300,300)
    16         te.setStyleSheet('background-color:cyan')
    17 
    18         test_btn = QPushButton(self)
    19         test_btn.move(10,10)
    20         test_btn.setText("测试按钮")
    21         test_btn.pressed.connect(self.btn_test)
    22 
    23         # 插入表格
    24         te.textCursor().insertTable(5,3)
    25 
    26     def btn_test(self):
    27         self.自动格式化()
    28 
    29     def 自动格式化(self):
    30         self.te.setAutoFormatting(QTextEdit.AutoBulletList) # 自动创建项目符号列表
    31 
    32 if __name__ == '__main__':
    33     import sys
    34     app=QApplication(sys.argv)
    35     window=Window()
    36     window.show()
    37     sys.exit(app.exec_())
    38 # *******************自动格式化**********************结束
    自动格式化

    5、功能作用——转换行模式

    (1)框架

    (2)功能操作及展示

     1 # *******************转换行模式**********************开始
     2 from PyQt5.Qt import *
     3 
     4 class Window(QWidget):
     5     def __init__(self):
     6         super().__init__()
     7         self.setWindowTitle("QTextEdit")
     8         self.resize(500, 500)
     9         self.setup_ui()
    10 
    11     def setup_ui(self):
    12         te = QTextEdit("xx",self)
    13         self.te = te
    14         te.move(50,50)
    15         te.resize(300,300)
    16         te.setStyleSheet('background-color:cyan')
    17 
    18         test_btn = QPushButton(self)
    19         test_btn.move(10,10)
    20         test_btn.setText("测试按钮")
    21         test_btn.pressed.connect(self.btn_test)
    22 
    23         # 插入表格
    24         te.textCursor().insertTable(5,3)
    25 
    26     def btn_test(self):
    27         self.转换行模式()
    28 
    29     def 转换行模式(self):
    30         # self.te.setLineWrapMode(QTextEdit.NoWrap) # 没有软换行模式(有水平滚动条)
    31         self.te.setLineWrapMode(QTextEdit.FixedPixelWidth) # 设置固定的像素宽度
    32         self.te.setLineWrapColumnOrWidth(100)  # 这里的100与上面的FixePixelWidth有关
    33 
    34         self.te.setWordWrapMode(QTextOption.WrapMode)  # 保持单词的完整性
    35 
    36 if __name__ == '__main__':
    37     import sys
    38     app=QApplication(sys.argv)
    39     window=Window()
    40     window.show()
    41     sys.exit(app.exec_())
    42 # *******************转换行模式**********************结束
    转换行模式

    6、功能作用——覆盖模式

    (1)框架

    (2)功能操作及展示

    1 def 覆盖模式(self):
    2     self.te.setOverwriteMode(True) # 覆盖输入
    3     print(self.te.overwriteMode()) # 查看覆盖输入状态

    7、功能作用——光标设置

    (1)框架

    (2)功能操作及展示

    1 def 光标设置(self):
    2     if self.te.overwriteMode():
    3         self.te.setOverwriteMode(False)
    4         self.te.setCursorWidth(1)  # 设置光标宽度
    5     else:
    6         self.te.setOverwriteMode(True)
    7         self.te.setCursorWidth(10)

    8、功能作用——对齐方式

    (1)框架

    (2)功能操作及展示

    1 self.te.setAlignment(Qt.AlignCenter)

    9、功能作用——字体格式

    (1)框架

    (2)功能操作及展示

     1 def 字体设置(self):
     2     # QFontDialog.getFont() # 小技巧
     3     # self.te.setFontFamily("幼圆") # 设置字体
     4     # self.te.setFontWeight(QFont.Black) # 设置字体的粗细
     5     # self.te.setFontItalic(True) # 设置字体的倾斜
     6     # self.te.setFontPointSize(25) # 设置字体的大小
     7     # self.te.setFontUnderline(True) #设置下划线
     8 
     9     font = QFont()
    10     font.setStrikeOut(True) # 删除(中间一根线)
    11     self.te.setCurrentFont(font)

    10、功能操作——颜色设置

    (1)框架

    (2)功能操作及展示

    1 def 颜色设置(self):
    2     self.te.setTextBackgroundColor(QColor(200,10,10))  # 设置文本背景颜色
    3     self.te.setTextColor(QColor(10,200,10)) # 设置文本的颜色

    11、功能作用——当前的字符格式

    (1)框架

    (2)功能操作及展示

     1 def 当前字符格式(self):
     2     tcf = QTextCharFormat()
     3     tcf.setFontFamily("宋体")
     4     tcf.setFontPointSize(25)
     5     tcf.setFontCapitalization(QFont.Capitalize) # 首字母大写
     6     tcf.setForeground(QColor(100,200,150)) # 设置颜色
     7     self.te.setCurrentCharFormat(tcf)
     8 
     9     tcf2 = QTextCharFormat()
    10     tcf2.setFontOverline(True)
    11     # self.te.setCurrentCharFormat(tcf2) # 覆盖掉tcf
    12     self.te.mergeCurrentCharFormat(tcf2)  # tcf和tcf2合并

     12、功能作用——常用编辑操作

    (1)框架

    (2)功能操作及展示

     1 def 常用编辑操作(self):
     2     # self.te.copy()
     3     # self.te.paste()
     4     # print(self.te.canPaste())
     5     # self.te.selectAll() # 全选
     6 
     7     # print(self.te.find("xx"))  # 默认从左向右查找,并返回结果
     8     # print(self.te.find("xx",QTextDocument.FindBackward))  # 从右向左查找,并返回结果
     9     # print(self.te.find("xx",QTextDocument.FindBackward | QTextDocument.FindCaseSensitively))  # 从右向左查找,区分大小写,并返回结果
    10     print(self.te.find("xx",QTextDocument.FindWholeWords))  # 查找完整的单词,并返回结果
    11     self.te.setFocus()

    13、功能作用——滚动+只读设置

    (1)框架

    (2)功能操作及展示

    1 te.insertHtml("xxx"*300+"<a name='lk' href='#itlike'>哈哈</a>"+"aaa"*200)
    2 
    3 def 滚动到锚点(self):
    4     self.te.scrollToAnchor("lk")
    1 def 只读设置(self):
    2     self.te.setReadOnly(True)
    3     self.te.insertPlainText('itlike') # 不能限制通过代码插入内容
    4     print(self.te.isReadOnly()) # 查看是否只读

    14、功能作用——tab控制

    (1)框架

    (2)功能操作及展示

    1 def tab控制(self):
    2     # self.te.setTabChangesFocus(True) # tab键改变焦点
    3     print(self.te.tabStopDistance()) # 查看制表符的距离
    4     self.te.setTabStopDistance(100) # 设置制表符的距离
    5     print(self.te.tabStopDistance())  # 查看制表符的距离

    15、功能作用——锚点获取

    (1)框架

    (2)功能操作及展示

     1 # *******************锚点获取**********************开始
     2 from PyQt5.Qt import *
     3 
     4 class MyTextEdit(QTextEdit):
     5     def mousePressEvent(self, me):
     6         print(me.pos())
     7         link_str = self.anchorAt(me.pos())
     8         if len(link_str) > 0:
     9             QDesktopServices.openUrl(QUrl(link_str))
    10 
    11 class Window(QWidget):
    12     def __init__(self):
    13         super().__init__()
    14         self.setWindowTitle("QTextEdit")
    15         self.resize(500, 500)
    16         self.setup_ui()
    17 
    18     def setup_ui(self):
    19         te = MyTextEdit("xx",self)
    20         self.te = te
    21         te.move(50,50)
    22         te.resize(300,300)
    23         te.setStyleSheet('background-color:cyan')
    24 
    25         test_btn = QPushButton(self)
    26         test_btn.move(10,10)
    27         test_btn.setText("测试按钮")
    28         test_btn.pressed.connect(self.btn_test)
    29 
    30         # 插入表格
    31         te.textCursor().insertTable(5,3)
    32 
    33         te.insertHtml("xxx" * 300 + "<a href='https://www.cnblogs.com/fengxb1213/'>博客</a>" + "aaa" * 200)
    34 
    35     def btn_test(self):
    36         self.锚点获取()
    37 
    38     def 锚点获取(self):
    39         # 打开超链接,看上面的重写QTextDdit里面的mousePressEvent
    40         pass
    41 
    42 if __name__ == '__main__':
    43     import sys
    44     app=QApplication(sys.argv)
    45     window=Window()
    46     window.show()
    47     sys.exit(app.exec_())
    48 # *******************锚点获取**********************结束

    16、信号

    (1)框架

    (2)功能操作及展示

     1 # *******************信号**********************开始
     2 from PyQt5.Qt import *
     3 
     4 class Window(QWidget):
     5     def __init__(self):
     6         super().__init__()
     7         self.setWindowTitle("QTextEdit")
     8         self.resize(500, 500)
     9         self.setup_ui()
    10 
    11     def text_change(self):
    12         print("文本内容发生了改变")
    13 
    14     def selection_change(self):
    15         print("文本选中的内容发生了改变")
    16 
    17     def copy_a(self,yes):
    18         print("复制是否可用",yes)
    19 
    20     def setup_ui(self):
    21         te = QTextEdit("xx",self)
    22         self.te = te
    23         te.move(50,50)
    24         te.resize(300,300)
    25         te.setStyleSheet('background-color:cyan')
    26 
    27         # te.textChanged.connect(self.text_change)
    28         # te.selectionChanged.connect(self.selection_change)
    29         te.copyAvailable.connect(self.copy_a)
    30 
    31         test_btn = QPushButton(self)
    32         test_btn.move(10,10)
    33         test_btn.setText("测试按钮")
    34         test_btn.pressed.connect(self.btn_test)
    35 
    36         # 插入表格
    37         te.textCursor().insertTable(5,3)
    38 
    39         te.insertHtml("xxx" * 300 + "<a href='https://www.cnblogs.com/fengxb1213/'>博客</a>" + "aaa" * 200)
    40 
    41     def btn_test(self):
    42         pass
    43 
    44 if __name__ == '__main__':
    45     import sys
    46     app=QApplication(sys.argv)
    47     window=Window()
    48     window.show()
    49     sys.exit(app.exec_())
    50 # *******************信号**********************结束
  • 相关阅读:
    洛谷 P2234 [HNOI2002]营业额统计
    洛谷p3146&p3147
    洛谷 p1439 最长公共子序列
    搜索
    一步一步分析Caliburn.Micro(二:绑定执行方法Message现学现卖之自定命令)
    一步一步分析Caliburn.Micro(一:绑定执行方法Message)
    整理的C# 字符串类
    不用ADOX.CatalogClass创建Access数据库文件
    取远程网页数据 WebClient,HttpWebRequest
    C# LinQ 与 ADO.NET
  • 原文地址:https://www.cnblogs.com/fengxb1213/p/12597334.html
Copyright © 2011-2022 走看看