我正在使用python中的一个小型texteditor。 app
是我的主人,我正在尝试实现一个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)
这就是我必须做的工作。但感觉是BadMan,如果我必须创建一个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()
有什么想法吗? =)
答案 0 :(得分:0)
这需要三个步骤:
如果需要,您可以撤消订单:创建滚动条,然后创建文本,然后配置滚动条。此外,滚动条应不放在文本小部件内。文本小部件和滚动条通常共享同一个父级。
示例:
textWidget = Tk.Text(app)
scrollbar = Tk.Scrollbar(app, command=textWidget.yview)
textWidget.configure(yscrollcommand=scrollbar.set)