Tkinter07_Message & Spinbox & PanedWindow & Toplevel
标簽(空格分隔): Tkinter
文章目錄
- Tkinter07_Message & Spinbox & PanedWindow & Toplevel
-
-
- Message 元件
- Spinbox 元件
- PanedWindow 元件
- Toplevel 元件
-
Message 元件
Message(消息)元件是 Label 元件的變體,用于顯示多行文本消息。Message 元件能夠自動換行,并調整文本的尺寸使其适應給定的尺寸。
例 40
from tkinter import *
root = Tk()
w1 = Message(root, text="這是一則消息", width=100)
w1.pack()
w2 = Message(root, text="這是一則\n駭人聽聞的長長長長長消息", width=100)
w2.pack()
mainloop()
Spinbox 元件
Spinbox 元件(Tk8.4 新增)是 Entry 元件的變體,用于從一些固定的值中選取一個。Spinbox 元件和 Entry 元件用法相似,主要差別是使用 Spinbox 元件,可以通過範圍或者元組指定允許使用者輸入的内容。
例 41
from tkinter import *
root = Tk()
w = Spinbox(root, from_=0, to=10)
w.pack()
mainloop()
還可以通過元組指定允許輸入的值:
w = Spinbox(root, values=("小甲魚", "風介", "wei_Y", "戴宇軒"))
PanedWindow 元件
PanedWindow 元件(Tk8.4 新增)是一個空間管理元件。跟 Frame 元件類似,都是為元件提供一個架構,不過 PanedWindow 允許使用者調整應用程式的空間劃分。
例 42
建立一個兩窗格的 PanedWindow 元件。
from tkinter import *
m = PanedWindow(orient=VERTICAL)
m.pack(fill=BOTH, expand=1)
top = Label(m, text="top pane")
m.add(top)
bottom = Label(m, text="bottom pane")
m.add(bottom)
mainloop()
例 43
建立一個三窗格的 PanedWindow 元件。
from tkinter import *
m1 = PanedWindow()
m1.pack(fill=BOTH, expand=1)
left = Label(m1, text="left pane")
m1.add(left)
m2 = PanedWindow(orient=VERTICAL)
m1.add(m2)
top = Label(m2, text="top pane")
m2.add(top)
bottom = Label(m2, text="bottom pane")
m2.add(bottom)
mainloop()
這些不同窗格事實上有一條“分隔線”(sash)隔開。不妨把滑鼠緩慢移動到大概的位置,當滑鼠指針改變的時候拖動滑鼠,也可以把“分隔線”顯式地顯示出來,并且可以為它附上一個“搖桿”(handle):
例 44
from tkinter import *
m1 = PanedWindow(showhandle=True, sashrelief=SUNKEN)
m1.pack(fill=BOTH, expand=1)
left = Label(m1, text="left pane")
m1.add(left)
m2 = PanedWindow(orient=VERTICAL, showhandle=True, sashrelief=SUNKEN)
m1.add(m2)
top = Label(m2, text="top pane")
m2.add(top)
bottom = Label(m2, text="bottom pane")
m2.add(bottom)
mainloop()
Toplevel 元件
Toplevel(頂級視窗)元件類似于 Frame 元件,但 Toplevel 元件是一個獨立的頂級視窗,這種視窗通常擁有标題、邊框等部件。Toplevel 元件通常用在顯示額外的視窗、對話框和其他彈出視窗中。
例 45
在 root 視窗添加一個按鈕用于建立一個頂級視窗,點一下出現一個。
from tkinter import *
root = Tk()
def create():
top = Toplevel()
top.title("FishC Demo")
msg = Message(top, text="I love FishC.com")
msg.pack()
Button(root, text="建立頂級視窗", command=create).pack()
mainloop()
attributes() 方法用于設定和擷取視窗屬性,如果隻給出選項名,将傳回目前視窗該選項的值。注意:一下選項不支援關鍵字參數,需要在選項前添加橫杠(-)并用字元串的方式表示,用逗号(,)隔開選項和值。
例 46
将 Toplevel 視窗設定為 50% 透明。
from tkinter import *
root = Tk()
def create():
top = Toplevel()
top.attributes("-alpha", 0.5)
top.title("FishC Demo")
msg = Message(top, text="I love FishC.com")
msg.pack()
Button(root, text="建立頂級視窗", command=create).pack()
mainloop()
摘自《零基礎入門學習Python》
參考連結:
An Introduction To Tkinter
Tkinter彙總
Python GUI程式設計(Tkinter)
Tkinter顔色方案舉例
python tkinter可以使用的顔色
tkinter學習-菜單與畫布
程式設計思想與方法–第五章
用Python中的tkinter子產品作圖