0
我正在python中的一个小texteditor。随着app
成为我的主人,我正试图实现一个textWidget,其中我想放置一个功能滚动条。tkinter滚动条在textWidget,howto
我面临的问题是以下几点:
- 为了有一个textWidget把我的滚动条中,我必须先实现我的textWidget。但已经作为
Tk.Text
的一个参数,我需要为我的滚动条放置yscrollcommand
。这意味着我的textWidget不会知道我的滚动条是什么。
如果我把它转过来,我无法在textWidget中创建我的滚动条,因为它尚未创建。
在我的textWidget首先创建
# MENU BAR EXAMPLE
menu_bar = Tk.Menu()
# Set menu bar as menu for the app
app.config(menu=menu_bar)
# Fill menubar with "File" menu
filemenu = Tk.Menu(app,menu_bar, tearoff=0)
#filemenu.add_command(label="Exit", command=exit)
menu_bar.add_cascade(label="File", menu=filemenu)
menu_bar.add_cascade(label="File2", menu=filemenu)
filemenu.add_command(label="Exit", command=exit)
# BUTTON EXAMPLE
button = Tk.Button(app, text="Exit", command=quit)
button.pack(side=Tk.BOTTOM, fill=Tk.X)
# TEXT WIDGET
textWidget = Tk.Text(textWidget, yscrollcommand=scrollbar.set)
textWidget.pack(expand=True,fill=Tk.BOTH)
# SCROLLBAR
scrollbar=Tk.Scrollbar(textWidget)
scrollbar.pack(side=Tk.RIGHT, fill= Tk.Y)
scrollbar.config(command=textWidget.yview)
#Start the main event loop (i.e. run the tkinter program)
app.mainloop()
######################################################
第二个例子,其中创建滚动条第一
# MENU BAR EXAMPLE
menu_bar = Tk.Menu()
# Set menu bar as menu for the app
app.config(menu=menu_bar)
# Fill menubar with "File" menu
filemenu = Tk.Menu(app,menu_bar, tearoff=0)
#filemenu.add_command(label="Exit", command=exit)
menu_bar.add_cascade(label="File", menu=filemenu)
menu_bar.add_cascade(label="File2", menu=filemenu)
filemenu.add_command(label="Exit", command=exit)
# BUTTON EXAMPLE
button = Tk.Button(app, text="Exit", command=quit)
button.pack(side=Tk.BOTTOM, fill=Tk.X)
# SCROLLBAR
scrollbar=Tk.Scrollbar(textWidget)
scrollbar.pack(side=Tk.RIGHT, fill= Tk.Y)
scrollbar.config(command=textWidget.yview)
# TEXT WIDGET
textWidget = Tk.Text(textWidget, yscrollcommand=scrollbar.set)
textWidget.pack(expand=True,fill=Tk.BOTH)
而且这是我不得不这样做,使其工作第一个例子。但它感觉巴德曼如果我必须创建一个textWidget,创建一个滚动条,然后再次创建一个textWidget。
# MENU BAR EXAMPLE
menu_bar = Tk.Menu()
# Set menu bar as menu for the app
app.config(menu=menu_bar)
# Fill menubar with "File" menu
filemenu = Tk.Menu(app,menu_bar, tearoff=0)
#filemenu.add_command(label="Exit", command=exit)
menu_bar.add_cascade(label="File", menu=filemenu)
menu_bar.add_cascade(label="File2", menu=filemenu)
filemenu.add_command(label="Exit", command=exit)
# BUTTON EXAMPLE
button = Tk.Button(app, text="Exit", command=quit)
button.pack(side=Tk.BOTTOM, fill=Tk.X)
# TEXT WIDGET
textWidget = Tk.Text(app)
textWidget.pack(expand=True,fill=Tk.BOTH)
# SCROLLBAR
scrollbar=Tk.Scrollbar(textWidget)
scrollbar.pack(side=Tk.RIGHT, fill= Tk.Y)
textWidget = Tk.Text(textWidget, yscrollcommand=scrollbar.set) # <--- Creating textWidget again
#textWidget.pack(side=Tk.LEFT, fill=Tk.BOTH)
scrollbar.config(command=textWidget.yview)
textWidget.pack(expand=True,fill=Tk.BOTH)
# Start the main event loop (i.e. run the tkinter program)
app.mainloop()
任何想法? =)
这工作很好,谢谢。问题以及为什么我最终将我的滚动条打包到textWidget中是因为如果我不这样做,我最终会在应用底部的滚动条界面中出现,而且textwidget只能伸展到滚动条界面的顶部。 – JohEker
编辑。 如果首先创建滚动条,然后创建textWidget,则它将起作用。 滚动条将在应用程序中发生,并且在应用程序中发挥作用,然后textWidget将在应用程序的其余部分自行伸展 – JohEker