我正在制作一个项目,我必须在 Tkinter 的帮助下在框架中显示日志。这是我针对该特定框架的代码。# frame3 for logsframe3 = Frame( win, bg='black', width=310, height=140, padx=0, pady=0)frame3.pack(fill=X, expand=True, padx=(0, 10), pady=0)frame3.pack_propagate(0) # stops frame from shrinkingscroll = Scrollbar(frame3)scroll.pack(side = RIGHT, fill = Y)生成日志并在该帧中打印。这是生成和打印日志的代码logs = Label(frame3, text = (time.ctime()), font=("Consolas", 9), bg="#000000", fg="#ffffff")logs.pack(pady=(0, 0))滚动条正在显示,但不知何故无法正常工作。如果我用鼠标单击并滑动它,则滚动条正在滑动。我猜 Tkinter 中有 3 种类型的滚动条(如果我错了,请纠正我)。窗口滚动条。框架滚动条。标签滚动条(不确定)。我认为问题在于我制作的是一个框架的滚动条。但是,我需要它作为标签。或者有什么方法可以将日志直接打印到框架上?不知道真正的问题是什么。另外,有没有一种方法可以在生成日志时使其自动滚动?任何帮助将不胜感激。提前致谢。
2 回答
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
这是一个使用示例tkinter.scrolledtext:
from tkinter import *
from tkinter import scrolledtext
root = Tk()
txt = scrolledtext.ScrolledText(root)
txt['font'] = ('consolas', '12')
txt.pack(expand=True, fill='both')
txt.configure(state=DISABLED)
def log(data):
txt.configure(state=NORMAL)
txt.insert(END, data+'\n')
txt.configure(state=DISABLED)
log('abc')
log('abcde')
root.mainloop()
希望这会有所帮助!
添加回答
举报
0/150
提交
取消