如何使滚动条在 Tkinter 框架中工作?

我正在制作一个项目,我必须在 Tkinter 的帮助下在框架中显示日志。这是我针对该特定框架的代码。


# frame3 for logs

frame3 = 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 shrinking

scroll = 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))

http://img.mukewang.com/636b68ff00013af103440170.jpg

滚动条正在显示,但不知何故无法正常工作。如果我用鼠标单击并滑动它,则滚动条正在滑动。我猜 Tkinter 中有 3 种类型的滚动条(如果我错了,请纠正我)。

  1. 窗口滚动条。

  2. 框架滚动条。

  3. 标签滚动条(不确定)。

我认为问题在于我制作的是一个框架的滚动条。但是,我需要它作为标签。或者有什么方法可以将日志直接打印到框架上?不知道真正的问题是什么。另外,有没有一种方法可以在生成日志时使其自动滚动?

任何帮助将不胜感激。提前致谢。


慕的地6264312
浏览 109回答 2
2回答

小怪兽爱吃肉

这是一个使用示例tkinter.scrolledtext:from tkinter import *from tkinter import scrolledtextroot = 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()希望这会有所帮助!

慕码人2483693

.see("end")方法有助于自动滚动。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python