Tkinter 默认含滚动条的ScrolledText控件
Tkinter Text Add Scrollbar design介绍了将滚动条绑定在Text控件中,其实前面设计了简单的文本编辑程序没有滚动条的功能,正式的文本编辑程序应该要设计滚动条,我们可以采用加上滚动条。另外,也可以使用tkinter含有滚动条的控件设计这类程序。在tkinter.scrolledtext模块内有ScrolledText控件,这是一个默认含有滚动条的Text控件,使用时可以先导入此模块,执行时就可以看到滚动条。
示例1
使用ScrolledText控件取代Text控件,下面是导入此模块时新增第4行内容,再建立ScrolledText取代Text控件的内容。
from tkinter import *
from tkinter.filedialog import asksaveasfilename
from tkinter.filedialog import askopenfilename
from tkinter.scrolledtext import ScrolledText #as Text
def newFile():
text.delete("1.0",END)
root.title("Untitled")
def openFile():
global filename
filename = askopenfilename()
if filename == "":
return
with open(filename,"r") as fileObj:
content = fileObj.read()
text.delete("1.0",END)
text.insert(END,content)
root.title(filename)
def saveAsFile():
global filename
textContent = text.get("1.0",END)
filename = asksaveasfilename(defaultextension=".txt")
print("The file path passed back is : ",filename)
if filename == "":
return
with open(filename,"w") as output:
output.write(textContent)
root.title(filename)
filename = "apidemos"
root = Tk()
root.title(filename)
root.geometry("300x180")
menubar = Menu(root) # 建立最上层菜单
# 建立菜单类别对象,并将此菜单命名为File
filemenu = Menu(menubar,tearoff=False)
menubar.add_cascade(label="File",menu=filemenu)
# 在File菜单内建立菜单列表
filemenu.add_command(label="New File",command=newFile)
filemenu.add_command(label="Open File ...",command=openFile)
filemenu.add_command(label="Save As ...",command=saveAsFile)
filemenu.add_separator()
filemenu.add_command(label="Exit",command=root.destroy)
root.config(menu=menubar)
# 建立Text
text = ScrolledText(root,undo=True)
text.pack(fill=BOTH,expand=True)
root.mainloop()
输出:
打开apidemos2.txt