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数据类型转换函数总结
Mar 11 Python
介绍Python中内置的itertools模块
Apr 29 Python
python 根据pid杀死相应进程的方法
Jan 16 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
Dec 18 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
Apr 10 Python
python使用Pandas库提升项目的运行速度过程详解
Jul 12 Python
python3调用windows dos命令的例子
Aug 14 Python
Python通过cv2读取多个USB摄像头
Aug 28 Python
pip 安装库比较慢的解决方法(国内镜像)
Oct 06 Python
Python装饰器的应用场景代码总结
Apr 10 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
Jun 30 Python
Python selenium模块实现定位过程解析
Jul 09 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+mysql一个名片库程序
2006/10/09 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
PHP的反射机制实例详解
2017/03/29 PHP
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
vue 项目 iOS WKWebView 加载
2019/04/17 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
[00:16]热血竞技场
2019/03/06 DOTA
python条件和循环的使用方法
2013/11/01 Python
Python类的多重继承问题深入分析
2014/11/09 Python
python ChainMap的使用和说明详解
2019/06/11 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
python自动下载图片的方法示例
2020/03/25 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
python中@contextmanager实例用法
2021/02/07 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
linux面试题参考答案(10)
2016/10/26 面试题
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
师范生见习报告
2014/10/31 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
试用期自我评价范文
2015/03/10 职场文书