我想通过在tkinter中包装标签来创建快速键入效果。当我运行这段代码时,它会按照我希望的那样从左到右打印,但是字母之间的距离很远,而空格打印了{}括号。
如何删除括号并仅显示一个空格?除了我使用的列表方法以外,还有没有更简洁方便的滚动效果方法?
root = Tk()
delay = 50
label_var = StringVar()
label = Label(root, textvariable=label_var, height=10)
num = 0
def scroll():
global num
roll_text = list(message) # Edit: deleted this line
num = num + 1
label_var.set(roll_text[1:num]) # Edit: changed roll_text to message
root.after(delay, scroll)
message = ' This message should be scrolling left to right. '
scroll()
label.pack()
root.mainloop()
答案 0 :(得分:0)
出现括号是因为要将字符串转换为列表。当给tkinter一个需要字符串的列表时,它使用Tcl的规则将列表转换回字符串。这些规则包括使用花括号保留原始数据。
解决方案很简单:不要将列表传递给label_var.set
。
对于对齐方式,由于您未提供任何对齐方式选项,因此tkinter会尝试将小部件居中。针对此特定情况的一种简单解决方案是将side='left'
传递给pack
命令。