首页 > 编程语言 >【Python GUI 编程】tkinter :多行文本框

【Python GUI 编程】tkinter :多行文本框

时间:2024-11-21 21:40:56浏览次数:1  
标签:10 tkinter Python text GUI 文本框 tk Text root

在本文中,将介绍如何使用 tkinter Text 多行文本框小部件向应用程序添加文本编辑器。

Text 小部件允许显示和编辑多行文本,还支持嵌入图像和链接。

要创建多行文本框,请使用以下构造函数:

text = tk.Text(master, **option)

创建多行文本框

以下示例中,使用 Text 多行文本框小部件,在窗口上创建一个可以输入 10 行的文本框。

import tkinter as tk
root = tk.Tk()
root.geometry('600x400+200+200')
root.title('Text 多文本框演示')

text = tk.Text(root, height=10, font=("Arial", 20))
text.pack(padx=10, pady=10)

root.mainloop()

使用多行文本框显示文字

要在多行文本框显示文字,可以使用 insert() 方法。此方法在指定的索引位置插入字符串。

语法格式:

text.insert(index, string)

示例:

import tkinter as tk
root = tk.Tk()
root.geometry('600x400+200+200')
root.title('Text 多文本框演示')

text = tk.Text(root, height=10, font=("Arial", 20))
text.pack(padx=10, pady=10)
text.insert(tk.INSERT, '信息科技云课堂\nPython之家')

root.mainloop()

还可以使用标签设置文本格式,可以定义任意数量的标记,同一个 Tag 可以用于多个不同的范围。

以下代码定义了 a、b 两个 Tag,分别为字符串“信息”和“Python”设置不同的样式。

import tkinter as tk
root = tk.Tk()
root.geometry('600x400+200+200')
root.title('Text 多文本框演示')

text = tk.Text(root, height=10, font=("Arial", 20))
text.pack(padx=10, pady=10)
text.insert(tk.INSERT, '信息科技云课堂\nPython之家')

text.tag_add("a", "1.0", "1.2")
text.tag_add("b", "2.0", "2.6")
text.tag_config("a", background = "yellow", foreground = "blue")
text.tag_config("b", background = "black", foreground = "green")
root.mainloop()

要防止文本框的内容被修改,可以通过将参数设置禁用编辑。

text['state'] = 'disabled'

要重新启用编辑,可以设置以下参数。

text['state'] = 'normal'

读取多行文本框的内容

要读取多行文本框的内容,使用 get() 方法。

text_content = text.get('1.0','end')

该方法接受两个参数。第一个参数是起始位置,第二个参数是结束位置。

import tkinter as tk
from tkinter.messagebox import showinfo
root = tk.Tk()
root.geometry('600x400+200+200')
root.title('Text 多文本框演示')
def Take_input():
    msg = text.get("1.7", "end")
    showinfo(title='欢迎访问', message=msg)
    
text = tk.Text(root, height=10, font=("Arial", 20))
text.pack(padx=10, pady=10)
text.insert(tk.INSERT, '信息科技云课堂Python之家')

Display = tk.Button(root, height = 2, width = 20, text ="读取", command = lambda:Take_input())
Display.pack()

root.mainloop()

text.get("1.0", "end - 1 chars")

上面的代码返回所有文本,但最后一个换行符除外。

text.get("1.0", "end - 1 lines")

上述代码返回所有文本,但最后一行除外。

text.get("1.0", "1.0 lineend")

上述代码返回文本的第一行。

text.get("1.0", "1.0 + 3 lines")

上述代码返回文本的前三行。

删除多行文本框的内容

要读取多行文本框的内容,使用 delete() 方法。

text_content = text.delete('1.0','end')

与 get() 方法类似,该方法接受两个参数。第一个参数是起始位置,第二个参数是结束位置。

使用多行文本框显示图像

要使用多行文本框显示图像,使用 image_create() 方法。

import tkinter as tk
root = tk.Tk()
root.geometry('600x400+200+200')
root.title('Text 多文本框演示')

text = tk.Text(root, height=10, font=("Arial", 20))
text.pack(padx=10, pady=10)
photo=tk.PhotoImage(file='logo.png')
text.image_create(tk.INSERT, image=photo)
text.insert(tk.INSERT, 'Python之家')

root.mainloop()

Text 多行文本框小部件选项


原创 信息科技云课堂

标签:10,tkinter,Python,text,GUI,文本框,tk,Text,root
From: https://www.cnblogs.com/o-O-oO/p/18561609

相关文章

  • 豆瓣电影论坛可视化分析Python毕设源码论文Flask,VUE
        博主介绍:......
  • 仓库出入库管理系统Python毕设源码论文Django,VUE
        博主介绍:......
  • 高校学生在线考试分析平台Python毕设源码论文Django,VUE
        博主介绍:......
  • 电影影片数据爬取与数据可视化分析Python毕设源码论文Django,VUE
        博主介绍:......
  • python中的join()函数
    在Python中,join()是一个字符串方法,用于将可迭代对象(如列表、元组等)中的元素连接成一个单一的字符串。join()是字符串对象的方法,因此它需要在一个字符串上调用,并且它将连接指定的可迭代对象的所有元素,默认情况下使用该字符串作为分隔符。语法separator.join(iterable)s......
  • python如何通过pytest进行测试函数
    首先要安装模块pytest,在已经安装python的前提下,打开命令提示符或者其他终端,首先升级pip命令是python-mpipinstall--upgradepip升级完pip之后安装pytest命令格式是python-mpipinstall--userpytest首先新建一个py文件,名字叫city_function.py里面编写一个简单函数......
  • python-django老年人社区志愿者服务平台设计与实现
    文章目录项目介绍系统开发技术路线具体实现截图开发技术系统性能核心代码部分展示源码/演示视频获取方式项目介绍设计并实现了老年人社区服务平台。该系统基于B/S即所谓浏览器/服务器模式,应用vue框架,选择MySQL作为后台数据库。系统主要包括首页、个人中心、志愿者管......
  • 【Python GUI 编程】tkinter :消息框、对话框
    在本教程中,将介绍如何使用tkinter的messagebox模块、filedialog模块、colorchooser模块显示各种消息框、对话框。在使用Tkinter开发应用程序时,需要向用户发送提示、警告、错误信息。这些场景,可以使用messagebox模块中的以下方法实现:showinfo():提示信息。showerror()......
  • Python算法模版——并查集
        并查集常用于与图或树相关的算法题中,一个最为经典应用场景是求无向图的连通分量,为方便大家使用并查集算法,这里为大家提供一个Python的并查集算法模版,并加有详细注释。classUnionFind:def__init__(self,n):#n代表总共有n个节点,初始时每个节点以......
  • 接口测试之python+rquest+unittest分层自动化框架
    一、新建一个项目接口自动化框架设计实战:第一包:config第二包:api组建接口包第三个包:testcase存放用例,第四个包:report包报告包第五包:utils包工具类包第六个包:run二、邮箱设置断言:接口断言参考:讲解稿:首先在pycharm里新建一个项目,然后构建6个包,分别是api构......