GUI的最终选择 Tkinter(八):Message组件、Spinbox组件、PanedWindow组件、Toplevel组件

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()

执行结果:

 

猜你喜欢

转载自www.cnblogs.com/pinpin/p/10029312.html
今日推荐