Message组件
Message(消息)组件是Label组件的变体,用于显示多行文本消息,Message组件能够自动执行,并调整文本的尺寸使其适应给定的尺寸。
1 from tkinter import * 2 3 root = Tk() 4 w1 = Message(root,text="这是一个消息",width=100) 5 w1.pack() 6 w2 = Message(root,text="这是一个骇人听闻的消息,台湾海峡发生了地震",width=200) 7 w2.pack() 8 mainloop()
执行结果:
Spinbox组件
Spinbox组件是Entry组件的变体,这是在Tk8.4版本中新增的一个组件,是从固定的值中选取一个。Spinbox组件和Entry组件在用法上非常的相似,主要的区别是Spinbox组件可以通过范围或者元组指定允许用户输入的内容。
1 from tkinter import * 2 3 root = Tk() 4 w = Spinbox(root,from_=0,to=10) 5 w.pack() 6 mainloop()
执行结果:
下面是通过元组指定允许输入的值。
1 from tkinter import * 2 3 root = Tk() 4 w = Spinbox(root,values=("php","python","c+","java")) 5 w.pack() 6 mainloop()
执行结果:
PanedWindow组件
PanedWindow组件也是Tk8.4版本新增的一个空间管理组件,和Frame组件有点类似,都是为组件提供一个框架,不过PanedWindow允许让用户调整应用程序的空间划分。
1 from tkinter import * 2 3 root = Tk() 4 m = PanedWindow(orient=VERTICAL) 5 m.pack() 6 top = Label(m,text="TOP PANE") 7 m.add(top) 8 botton = Label(m,text="Botton pane") 9 m.add(botton) 10 mainloop()
执行结果:
在两个Label之间有一个线,可以尝试把鼠标放上去,会有一个上下箭头可以拉一下。
两个窗格的创建好了,那么三个窗格的就子通了:
1 from tkinter import * 2 3 root = Tk() 4 m1 = PanedWindow() 5 m1.pack(fill=BOTH,expand=1) 6 left = Label(m1,text="left pane") 7 m1.add(left) 8 m2 = PanedWindow(orient=VERTICAL) 9 m1.add(m2) 10 top = Label(m2,text="TOP PANE") 11 m2.add(top) 12 botton = Label(m2,text="Botton pane") 13 m2.add(botton) 14 mainloop()
执行结果:
Toplevel组件
Toplevel组件是一个独立的顶级窗口组件有标题栏,边框栏等部件。Toplevel组件通常用来显示额外的对话窗或者弹出框。
来看个例子,使用root窗口添加一个按钮,用于创建一个顶级窗口,点一下出现一个。
1 from tkinter import * 2 3 root = Tk() 4 def creat(): 5 top = Toplevel() 6 top.title("python") 7 msg = Message(top,text="I love python") 8 msg.pack() 9 Button(root,text="创建顶级窗口",command=creat).pack() 10 mainloop()
执行结果:
最后说下attributes()方法,它主要是用于设置或者获取窗口属性,如果只是给与选项名,将会返回当前窗口该选项的值。注意,下面的选项方式不支持关键字参数,需要在选项前面添加横杠(-)并使用字符串的方式,用逗号(,)隔开选项和值。
1 from tkinter import * 2 3 root = Tk() 4 def creat(): 5 top = Toplevel() 6 top.title("python") 7 top.attributes("-alpha",0.5) 8 msg = Message(top,text="I love python") 9 msg.pack() 10 Button(root,text="创建顶级窗口",command=creat).pack() 11 mainloop()
执行结果: