pyqt5 textEdit、lineEdit操作的示例代码


Posted in Python onAugust 12, 2020

1.定义一个textEdit/lineEdit:(lineEdit只需要将代码中的QTextEdit改为QLineEdit)

self.textEdit = QtWidgets.QTextEdit(Dialog)
  self.textEdit.setGeometry(QtCore.QRect(70, 90, 171, 391))
  self.textEdit.setObjectName("textEdit")
  self.textEdit.setReadOnly(True)#设置为只读,即可以在代码中向textEdit里面输入,但不能从界面上输入,没有这行代码即可以从界面输入

2.从代码中将字符串显示到textEdit:

str='要显示的字符串'
self.textEdit.setText(str)

3.追加字符串:

str='要显示的字符串'
 self.textEdit_2.append(str)

4.显示数字到textEdit:数字必须要转换成字符串

count=10
str=str(count)
self.textEdit.setText(str)

5.读取textEdit中的文字:textEdit和LineEdit中的文字读取方法是不一样的

str1 = self.textEdit.toPlainText()
#textEdit 用toPlainText()方法
#linEdit 直接用self.lineEdit.text()即可获取

PyQt5 QTextEdit控件操作

from PyQt5.Qt import *
import sys
import math

#超链接
class MyTextEdit(QTextEdit):
  def mousePressEvent(self,me):
    print(me.pos())
    link_str=self.anchorAt(me.pos())
    if(len(link_str)>0):
      QDesktopServices.openUrl(QUrl(link_str))
    return super().mousePressEvent(me)

class Window(QWidget):
  def __init__(self):
    super().__init__()
    self.setWindowTitle("QTextEdit的学习")
    self.resize(500,500)
    self.setWindowIcon(QIcon("D:\ICO\ooopic_1540562292.ico"))
    self.setup_ui()
  def setup_ui(self):
    te=MyTextEdit(self)
    self.te=te
    te.move(100,100)
    te.resize(300,300)
    te.setStyleSheet("background-color:cyan;")

    but=QPushButton(self)
    but.move(50,50)
    but.setText("测试按钮")
    #self.占位文本的提示()
    self.文本内容的设置()
    #self.格式设置和合并()
    but.pressed.connect(self.but_test)
    #te.textCursor().insertTable(5,3)
    #te.insertHtml("xxx"*300+"<a name='lk' href='#itlike'>撩课</a>"+"aaa"*200)
    te.insertHtml("xxx"*300+"<a href='http://www.itlike.com'>撩课</a>"+"aaa"*200)

    te.textChanged.connect(self.text_change)#文本发生改变
    te.selectionChanged.connect(self.selection_change)#选中的文本发生改变
    te.copyAvailable.connect(self.copy_a)#复制是否可用
  def copy_a(self,yes):
    print("复制是否可用",yes)

  def selection_change(self):
    print("文本选中的内容发生了改变")

  def text_change(self):
    print("文本内容发生了改变")

  def but_test(self):
    #self.te.clear()
    #self.光标插入内容()
    #self.内容和格式的获取()
    #self.字体设置()
    #self.颜色设置()
    #self.字符设置()
    #self.常用编辑操作()
    #self. 只读设置()
    #self.AB功能测试()
    self.打开超链接()

  def 打开超链接(self):
    pass
  def AB功能测试(self):
    #self.te.setTabChangesFocus(True)
    print(self.te.tabStopDistance())
    self.te.setTabStopDistance(100)

  def 只读设置(self):
    self.te.setReadOnly(True)
    self.te.insertPlainText("itlike")

  def 滚动到锚点(self):
    self.te.scrollToAnchor("lk")

  def 常用编辑操作(self):
    #self.te.copy()
    #self.te.paste()
    #self.te.selectAll()
    #self.te.setFocus()
    #QTextDocument.FindBackward
    print(self.te.find("xx",QTextDocument.FindBackward|QTextDocument.FindCaseSensitively))
    self.te.setFocus()

  def 字符设置(self):
    tcf=QTextCharFormat()
    tcf.setFontFamily("宋体")
    tcf.setFontPointSize(20)
    tcf.setFontCapitalization(QFont.Capitalize)
    tcf.setForeground(QColor(100,200,150))
    self.te.setCurrentCharFormat(tcf)
    tcf2=QTextCharFormat()
    tcf2.setFontOverline(True)
    #self.te.setCurrentCharFormat(tcf2)
    self.te.mergeCurrentCharFormat(tcf2)

  def 颜色设置(self):
    self.te.setTextBackgroundColor(QColor(200,10,10))
    self.te.setTextColor(QColor(10,200,10))

  def 字体设置(self):
    #QFontDialog.getFont()
    self.te.setFontFamily("幼圆")
    self.te.setFontWeight(QFont.Black)
    self.te.setFontItalic(True)
    self.te.setFontPointSize(30)
    self.te.setFontUnderline(True)
    #font=QFont()
    #font.setStrikeOut(True)
    #self.te.setCurrentFont(font)


  def 对齐方式(self):
    self.te.setAlignment(Qt.AlignCenter)

  def 光标设置(self):
    print(self.te.cursorWidth())
    if self.te.overwriteMode():
      self.te.setOverwriteMode(False)
      self.te.setCursorWidth(1)
    else:
      self.te.setOverwriteMode(True)
      self.te.setCursorWidth(10)
  def 覆盖模式的设置(self):
    self.te.setOverwriteMode(True)
    print(self.te.overwriteMode())

  def 软换行模式(self):
    #self.te.setLineWrapMode(QTextEdit.NowWrap)
    #self.te.setLineWrapMode(QTextEdit.FixedPixelWidth)
    self.te.setLineWrapMode(QTextEdit.FixedColumnWidth)
    self.te.setLineWrapColumnOrWidth(8)
  def 自动格式化(self):
    QTextEdit
    self.te.setAutoFormatting(QTextEdit.AutoBulletList)#录入*号自动产生格式
  def 开始和结束编辑块(self):
    tc=self.te.textCursor()
    #tc.beginEditBlock()
    tc.insertText("123")
    tc.insertBlock()
    tc.insertText("456")
    tc.insertBlock()
    #tc.cndEditBlock()

    tc.insertText("789")
    tc.insertBlock()
  def 位置相关(self):
    tc=self.te.textCursor()#获取光标
    print("是否在段落的结尾",tc.atBlockEnd)
    print("是否在段落的开始",tc.atBlockStart())
    print("是否在文档的结尾",tc.atEnd())
    print("是否在文档的开始",tc.atStart())
    print("在第几列",tc.columnNumber())
    print("光标位置",tc.position())
    print("在文本块中的位置",tc.positionInBlock())
  def 文本字符的删除(self):
    tc=self.te.textCursor()
    #tc.deleteChar()#向右侧清除
    tc.deletePreviousChar()#向左侧清除
    self.te.setFocus()
  def 文本的其他操作(self):
    tc=self.te.textCursor()
    #print(tc.selectionStart())#获取选中起始
    #print(tc.selectionEnd())#获取选中结束
    #tc.clearSelection()#清除选中
    #self.te.setTextCursor()#设置光标
    #print(tc.hasSelection())
    tc.removeSelectedText()
    self.te.setFocus()
  def 文本选中内容的获取(self):
    tc=self.te.textCursor()
    print(tc.selectedText())
    QTextDocumentFragment
    print(tc.selection().toPlainText())
    print(tc.selectedTableCells())
  def 文本选中和清空(self):
    tc=self.te.textCursor()
    #tc.setPosition(6,QTextCursor,KeepAnchor)
    #tc.movePosition(QTextCursor.Up,QTextCursor.KeepAnchor,1)
    tc.select(QTextCursor.WordUnderCursor)
    self.te.setTextCursor(tc)

  def 格式设置和合并(self):
    #设置上下间距
    tc=self.te.textCursor()
    tcf=QTextCharFormat()
    tcf.setFontFamily("幼圆")
    tcf.setFontPointSize(30)
    tcf.setFontOverline(True)
    tcf.setFontUnderline(True)
    tc.setCharFormat(tcf)
    return None

    #设置上下划线及字体大小
    tc=self.te.textCursor()
    tcf=QTextCharFormat()
    tcf.setFontFamily("幼圆")
    tcf.setFontPointSize(30)
    tcf.setFontOverline(True)
    tcf.setFontUnderline(True)
    tc.setBlockCharFormat(tcf)
    pass

  def 内容和格式的获取(self):
    tc=self.te.textCursor()
    QTextLine
    print(tc.block().text())
    print(tc.blockNumber())
    #print(tc.currentList().count())
    pass
  def 文本内容的设置(self):
    #设置普通文本内容
    self.te.setPlainText("<h1>ooo</h1>")
    self.te.insertPlainText("<h1>ooo</h1>")
    print(self.te.toPlainText())
    #富文本的操作
    self.te.setHtml("<h1>ooo</h1>")
    self.te.insertHtml("<h6>社会我的顺哥</h6>")
    print(self.te.toHtml())

  def 占位文本的提示(self):
    self.te.setPlaceholderText("请输入你的个人简介")

  def 光标插入内容(self):
    tc=self.te.textCursor()#获取焦点
    tff=QTextFrameFormat()
    tff.setBorder(10)
    tff.setBorderBrush(QColor(100,50,50))
    tff.setRightMargin(50)
    tc.insertFrame(tff)
    doc=self.te.document()
    root_frame=doc.rootFrame()
    root_frame.setFrameFormat()
    return None
    tc=self.te.textCursor()#获取光标
    tbf=QTextBlockFormat()
    tcf=QTextCharFormat()
    tcf.setFontFamily("隶书")
    tcf.setFontItalic(True)
    tcf.setFontPointSize(20)
    tbf.setAlignment(Qt.AlignRight)#对齐
    tbf.setRightMargin(100)
    tc.insertBlock(tbf,tcf)
    self.te.setFocus()#焦点
    return None
    #创建或插入添加表格
    tc=self.te.textCursor()
    ttf=QTextTableFormat()
    ttf.setAlignment(Qt.AlignRight)
    ttf.setCellPadding(6)
    ttf.setCellSpacing(13)


    ttf.setColumnWidthConstraints((QTextLength(QTextLength.PercentageLength,50),QTextLength(QTextLength.PercentageLength,40),QTextLength(QTextLength.PercentageLength,10)))#单元格长度比例

    table=tc.insertTable(5,3,ttf)
    table.appendColumns(2)
    return None

    #设置对齐
    tc=self.te.textCursor()
    #tl=tc.insertList(QTextListFormat.ListCircle)
    #tl=tc.insertList(QTectListFormat.ListDecimal)
    #tl=tc.createList(QTextListFormat.ListDecimal)
    tlf=QTextListFormat()
    tlf.setIndent(3)
    tlf.setNumberPrefix("<<")
    tlf.setNumberSuffix("<<")
    tlf.setStyle(QTextListFormat.ListDecimal)
    tl=tc.createList(tlf)
    QTextList
    return None

    #插入普通文本或者富文本
    tc=self.te.textCursor()
    tdf=QTextDocumentFragment.fromHtml("<h1>xxx</h1>")
    #tdf=QTextDocumentFragment.fromPlainText("<h1>xxx</h1>")
    tc.insertFragment(tdf)
    return None
    #插入图片
    tc=self.te.textCursor()
    tif=QTextImageFormat()
    tif.setName("D:\ICO\ooopic_1517621187.ico")
    tif.setWidth(100)
    tif.setHeight(100)
    tc.insertImage("D:\ICO\mmmmm.JPG")

    return None
    #插入接
    QTextCursor
    tcf=QTextCharFormat()
    tcf.setToolTip("撩课学院网址")
    tcf.setFontFamily("隶书")
    tcf.setFontPointSize(12)
    tc=self.te.textCursor()
    tc.insertText("itlike.com",tcf)
    tc.insertHtml("<a href='http://www.itlike.com'>撩课</a>")

if __name__=="__main__":
  App=QApplication(sys.argv)
  Win=Window()
  Win.show()
  sys.exit(App.exec_())

到此这篇关于pyqt5 textEdit、lineEdit操作的示例代码的文章就介绍到这了,更多相关pyqt5 textEdit、lineEdit操作内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
跟老齐学Python之玩转字符串(3)
Sep 14 Python
在Python中使用__slots__方法的详细教程
Apr 28 Python
Django中处理出错页面的方法
Jul 15 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
Python rstrip()方法实例详解
Nov 11 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
May 27 Python
python celery分布式任务队列的使用详解
Jul 08 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
使用python批量转换文件编码为UTF-8的实现
Apr 03 Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 Python
Python实现冒泡排序算法的完整实例
Nov 04 Python
Python如何telnet到网络设备
Feb 18 Python
基于python requests selenium爬取excel vba过程解析
Aug 12 #Python
PyCharm+PyQt5+QtDesigner配置详解
Aug 12 #Python
Python自动发送和收取邮件的方法
Aug 12 #Python
Selenium webdriver添加cookie实现过程详解
Aug 12 #Python
Python如何设置指定窗口为前台活动窗口
Aug 12 #Python
Python面向对象实现方法总结
Aug 12 #Python
Python命名空间及作用域原理实例解析
Aug 12 #Python
You might like
PHP版自动生成文章摘要
2008/07/23 PHP
php递归列出所有文件和目录的代码
2008/09/10 PHP
PHP中其实也可以用方法链
2011/11/10 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
javascript 写类方式之一
2009/07/05 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
JS实现拖动示例代码
2013/11/01 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
countUp.js实现数字动态变化效果
2019/10/17 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
Python调用微信公众平台接口操作示例
2017/07/08 Python
python爬虫实现获取下一页代码
2020/03/13 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
计算机网络专业个人的自我评价
2013/10/17 职场文书
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
元宵晚会主持词
2014/03/25 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
民主生活会剖析材料
2014/09/30 职场文书
人事专员岗位职责
2015/02/03 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
python字符串常规操作大全
2021/05/02 Python