如何在Python应用程序中分离文本块?

3

我正在学习Python,并编写一个应用程序,应该在屏幕上显示文本块。我使用的是tkinter库。

有些块中的文本可能不能适合一行,因此我决定使用Text小部件,因为它具有换行文本的选项。而且我还使用了Scrollbar小部件,因为文本块可能不适合屏幕。所以我的代码看起来像这样:

root = Tk()
scrollbar = Scrollbar(root)
t = Text(root, wrap=WORD)

def show_messages():
    for i in range (0, len(messages)):
         t.insert(END, messages[i] + '\n')

def show_windows():
    scrollbar.pack(side="right", fill="y", expand=False)
    t.pack(side="left", fill="both", expand=True)
    root.mainloop()

show_messages()
show_window() 

而且,最重要的是,信息应该用某种方式分隔,但我卡在这里了。所以,我的问题是:如何分隔我的文本块?或者我走错了路,应该使用Listbox小部件而不是Text?提前致谢!


你能不能添加文本 ----\n 作为分隔符? - furas
1个回答

3
您可以通过使用Text小部件的window_create方法插入黑色框架来实现:
import tkinter as tk

root = tk.Tk()
scrollbar = tk.Scrollbar(root)
t = tk.Text(root, wrap="word")

messages = [
"""
#############################
#                           #
#       text block 1        #
#                           #
#############################
""",
"""
#############################
#                           #
#       text block 2        #
#                           #
#############################
"""
]

def show_messages():
    for i in range (0, len(messages)):
         t.insert("end", messages[i] + '\n')
         # add a black centered the text block
         f = tk.Frame(t, width=200, height=1, background="black")
         t.window_create("end", window=f)
         t.insert("end",'\n')

def show_windows():
    scrollbar.pack(side="right", fill="y", expand=False)
    t.pack(side="left", fill="both", expand=True)
    root.mainloop()

show_messages()
show_windows()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接