在本文中,将介绍如何使用 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原创 信息科技云课堂