Python基础入门学习笔记 075 GUI的终极选择:Tkinter12

发布时间 2023-08-23 14:10:57作者: 一杯清酒邀明月

Message组件

Message(消息)组件是Label组件的变体,用于显示多行文本信息。Message组件能够自动换行,并调整文本的尺寸使其适应给定得尺寸。

实例1:

1 from tkinter import *
2 
3 root = Tk()
4 w1 = Message(root,text="这是一则消息",width=100)
5 w1.pack()
6 w2 = Message(root,text="这是一条骇人听闻的长消息!",width=100)
7 w2.pack()
8 
9 mainloop()

Spinbox组件

Entry组件的变体,用于从一些固定的值中选取一个。使用Spinbox组件,可以通过返回或者元组指定允许用户输入的内容。

实例1:

1 from tkinter import *
2 
3 root = Tk()
4 
5 #w = Spinbox(root,from_=0,to=10)#指定输入值为0-10
6 w = Spinbox(root,value=("Hadley","小土豆","雅馨"))#指定输入
7 w.pack()
8 
9 mainloop()

PanedWindow组件

与Frame类似,都是为组件提供一个框架,但其还允许让用户调整应用程序的空间划分

实例1:两窗格

 1 from tkinter import *
 2 
 3 root = Tk()
 4 
 5 m = PanedWindow(orient = VERTICAL)#设置为上下分布
 6 m.pack(fill=BOTH,expand=1)#设置为框架覆盖全局
 7 
 8 top = Label(m,text="top pane")#顶窗格
 9 m.add(top)
10 
11 bottom = Label(m,text="bottom pane")#底窗格
12 m.add(bottom)
13 
14 mainloop()

 实例2:三窗格

 1 from tkinter import *
 2 
 3 root = Tk()
 4 
 5 m1 = PanedWindow()#默认为左右分布
 6 m1.pack(fill=BOTH,expand=1)
 7 left = Label(m1,text="left pane")#左窗格
 8 m1.add(left)
 9 
10 m2 = PanedWindow(orient=VERTICAL)
11 m1.add(m2)
12 top=Label(m2,text="top pane")#顶窗格
13 m2.add(top)
14 bottom = Label(m2,text="bottom pane")#底窗格
15 m2.add(bottom)
16 
17 mainloop()

 实例3:显示“分割线”

 1 from tkinter import *
 2 
 3 root = Tk()
 4 
 5 #showhandle=True表示显示“手柄”
 6 #sashrelief=SUNKEN表示分隔线的样式设置为向下凹
 7 m1 = PanedWindow(showhandle=True,sashrelief=SUNKEN)
 8 m1.pack(fill=BOTH,expand=1)
 9 left = Label(m1,text="left pane")
10 m1.add(left)
11 
12 m2 = PanedWindow(orient=VERTICAL,showhandle=True,sashrelief=SUNKEN)
13 m1.add(m2)
14 top=Label(m2,text="top pane")
15 m2.add(top)
16 bottom = Label(m2,text="bottom pane")
17 m2.add(bottom)
18 
19 mainloop()

Toplevel组件

Topleve(顶级窗口)l组件类似于Frame组件,但其是一个独立的顶级窗口,通常拥有标题栏、边框等部件。通常用在显示额外的窗口、对话框和其他弹出窗口中。

实例1:按钮按下创建一个顶级窗口

 1 from tkinter import *
 2 
 3 def create():
 4     top = Toplevel()#创建一个独立的顶级窗口
 5     top.title("FishC Demo")
 6     msg = Message(top,text="I love FishC.com")
 7     msg.pack()
 8     
 9 root = Tk()
10 Button(root,text="创建顶级窗口",command=create).pack()
11 
12 mainloop()

 实例2:Toplevel的窗口设置为50%透明

 1 from tkinter import *
 2 
 3 def create():
 4     top = Toplevel()
 5     top.title("FishC Demo")
 6     top.attributes("-alpha",0.5)#设置为50%透明度
 7     msg = Message(top,text="I love FishC.com")
 8     msg.pack()
 9     
10 root = Tk()
11 Button(root,text="创建顶级窗口",command=create).pack()
12 
13 mainloop()