[英]Scrollbar for Message Widget in Tkinter
我正在嘗試將以前在命令行中編寫的游戲轉換為GUI( https://github.com/abhinavdhere/Share-Trader-PC/releases/tag/v1.0 )我已經建立了一個類似於按鈕結構的菜單在一個框架中,然后單擊“幫助”,上一個框架f1應該消失並顯示幫助文本。 我使用消息小部件來顯示文本,但是它很長,需要滾動條。 我嘗試添加垂直滾動條,但無法使其正常工作。 我提到了python和tkinter:在畫布上使用滾動條並嘗試這樣做,但是它仍然僅顯示消息,而沒有滾動條。 這是它的功能:
def help(self):
self.f1.pack_forget()
f2=tk.Frame(self,bg='#FFCC00')
f2.grid(row=0,column=0)
helpMan=open("Game Rules.txt","r")
hText=helpMan.read()
c1=tk.Canvas(f2,width=640,height=480,scrollregion=(0,0,700,500))
c1.pack(side="left",expand=True,fill="both")
text1=tk.Message(f2,text=hText)
c1.create_window(0,0,anchor="nw",window=text1)
scrollY=tk.Scrollbar(f2,orient="vertical",command=c1.yview)
scrollY.pack(side="right",fill="y")
c1.config(yscrollcommand = scrollY.set)
PS為什么制作一個簡單的滾動條這么麻煩?
message
小部件不支持滾動。 它缺少用於滾動協議的命令yview
和xview
。 它實際上只是一個多行標簽。 它也是丑陋的,不能作為主題。
您應該用text
窗口小部件替換message
窗口小部件,該text
窗口小部件還顯示多行文本,並可以支持使用標簽滾動和格式化文本,以在需要時附加樣式信息。
為了使文本小部件看起來與“消息”小部件相同,應執行以下操作:
m = Message(root)
txt = Text(root, background=m.cget("background"), relief="flat",
borderwidth=0, font=m.cget("font"), state="disabled")
m.destroy()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.