如何在 tkinter 的自动滚动列表框中包装文本?
How to wrap text in Auto Scroll List Box in thinter?
请说明如何在自动列表框中换行。
文本在列表项中没有完全显示,我希望它在到达行尾时自动换行。
我知道我必须做 wrap=WORD 但无法找到我应该添加它的地方。
提前谢谢你。
UI 的图片,外出的文字:
代码片段
class AutoScroll_ListBox:
def __init__(self, master):
frame = Frame(master)
frame.pack(fill=X, padx=10, pady=1)
instructions()
self.listbox_log = Listbox(
frame, bg="black", height=12, fg="cyan", font=('Times', 45))
self.scrollbar_log = Scrollbar(frame)
self.scrollbar_log.pack(side=RIGHT)
self.listbox_log.pack(fill=X)
self.listbox_log.configure(
yscrollcommand=self.scrollbar_log.set)
self.scrollbar_log.configure(command=self.listbox_log.yview)
# Just to show unique items in the list
self.item_num = 0
def addToChatBox(self, speaker, msg):
self.listbox_log.insert(END, speaker+" " + msg)
self.listbox_log.select_clear(self.listbox_log.size() - 2)
self.listbox_log.yview(END)
self.item_num += 1
def onSpeak(self):
print("Listening..")
msg = take_user_input()
self.addToChatBox("User :", msg)
result = Logic.reply_to_query(self, msg.lower())
self.addToChatBox("Liam :", result)
def onAdd(self):
msg = messageVar.get()
self.addToChatBox("User :", msg)
result = Logic.reply_to_query(self, msg.lower())
self.addToChatBox("Liam :", result)
Listbox
小部件不支持换行。如果您希望文本能够换行,则必须使用其他东西,例如 Text
小部件。
我的解决方案:
我所做的是在每 60 个字符之后创建一个新的列表项,因为我的字体将保持不变,因此适合一行的字符将始终保持不变。
这是现在的样子。
Solved problem screenshot
请说明如何在自动列表框中换行。 文本在列表项中没有完全显示,我希望它在到达行尾时自动换行。 我知道我必须做 wrap=WORD 但无法找到我应该添加它的地方。 提前谢谢你。
UI 的图片,外出的文字:
代码片段
class AutoScroll_ListBox:
def __init__(self, master):
frame = Frame(master)
frame.pack(fill=X, padx=10, pady=1)
instructions()
self.listbox_log = Listbox(
frame, bg="black", height=12, fg="cyan", font=('Times', 45))
self.scrollbar_log = Scrollbar(frame)
self.scrollbar_log.pack(side=RIGHT)
self.listbox_log.pack(fill=X)
self.listbox_log.configure(
yscrollcommand=self.scrollbar_log.set)
self.scrollbar_log.configure(command=self.listbox_log.yview)
# Just to show unique items in the list
self.item_num = 0
def addToChatBox(self, speaker, msg):
self.listbox_log.insert(END, speaker+" " + msg)
self.listbox_log.select_clear(self.listbox_log.size() - 2)
self.listbox_log.yview(END)
self.item_num += 1
def onSpeak(self):
print("Listening..")
msg = take_user_input()
self.addToChatBox("User :", msg)
result = Logic.reply_to_query(self, msg.lower())
self.addToChatBox("Liam :", result)
def onAdd(self):
msg = messageVar.get()
self.addToChatBox("User :", msg)
result = Logic.reply_to_query(self, msg.lower())
self.addToChatBox("Liam :", result)
Listbox
小部件不支持换行。如果您希望文本能够换行,则必须使用其他东西,例如 Text
小部件。
我的解决方案:
我所做的是在每 60 个字符之后创建一个新的列表项,因为我的字体将保持不变,因此适合一行的字符将始终保持不变。 这是现在的样子。
Solved problem screenshot