欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解python3中tkinter知識(shí)點(diǎn)

 更新時(shí)間:2018年06月21日 15:36:34   作者:shirayukixue  
本篇文章給大家分享了關(guān)于python3中tkinter的相關(guān)知識(shí)點(diǎn)以及實(shí)例代碼,有興趣的朋友參考下。
#導(dǎo)入tkinter模塊,以及導(dǎo)入ttk模塊,tkinter是python結(jié)合tk的標(biāo)準(zhǔn)接口,ttk是TK8.5之后加入的“主題化工具包”
from tkinter import *
from tkinter import ttk

#定義的計(jì)算函數(shù),完成英尺到米的換算
def calculate(*args):
  try:
    value = float(feet.get())
    meters.set((0.3048 * value * 10000.0 + 0.5)/10000.0)
  except ValueError:
    pass

'''
創(chuàng)建了一個(gè)主窗口;
主窗口標(biāo)題為:“Free to Meters”
通過(guò)ttk.Frame創(chuàng)建了一個(gè)框架容器;所以界面內(nèi)容都放在框架中,并把框架放在主窗口root中;
通過(guò)grid指定框架的位置,以及對(duì)齊方式:sticky說(shuō)明使用羅盤式方位,控件將要如何在網(wǎng)格單元格里排放(NWES分別表示上左右下);
columnconfigure方法告訴tk自適應(yīng)寬度;
rowconfigure方法告訴tk自適應(yīng)高度
'''
root = Tk()
root.title("Feet to Meters")
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)

feet = StringVar()
meters = StringVar()

feet_entry = ttk.Entry(mainframe, width=7, textvariable=feet)
feet_entry.grid(column=2, row=1, sticky=(W, E))

ttk.Label(mainframe, textvariable=meters).grid(column=2, row=2, sticky=(W, E))
ttk.Button(mainframe, text="Calculate", command=calculate).grid(column=3, row=3, sticky=W)

ttk.Label(mainframe, text="feet").grid(column=3, row=1, sticky=W)
ttk.Label(mainframe, text="is equivalent to").grid(column=1, row=2, sticky=E)
ttk.Label(mainframe, text="meters").grid(column=3, row=2, sticky=W)

'''
檢查框架內(nèi)的所有控件,并在每個(gè)控件之間增加一點(diǎn)距離,使他們看起來(lái)沒(méi)那么擁擠;
告訴tk把注意力轉(zhuǎn)移到我們的輸入框上;也就是說(shuō)在開始的時(shí)候,光標(biāo)默認(rèn)會(huì)在輸入框,當(dāng)用戶輸入的時(shí)候不需要去單擊
告訴tk用戶按下了回車鍵和單擊計(jì)算按鈕是一樣的,會(huì)調(diào)用計(jì)算程序段
'''
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
feet_entry.focus()
root.bind('<Return>', calculate)

#tk讓他的事件循環(huán),這樣才能讓所有的事件運(yùn)行
root.mainloop()

忘記了什么?

這里還有一些值得檢查而我們沒(méi)有在Tk程序中包括的。例如:

  • ·我們沒(méi)有考慮當(dāng)事件改變時(shí)重繪界面
  • ·我們沒(méi)有考慮評(píng)價(jià)發(fā)送事件消息,捕獲監(jiān)測(cè),或者在每個(gè)空間上處理事件
  • ·在創(chuàng)建控件的時(shí)候,我們沒(méi)有提供更多的選項(xiàng);默認(rèn)看起來(lái)已經(jīng)關(guān)注了很多事情,并且我們僅僅改變了按鈕上的顯示文本。
  • ·我們沒(méi)有寫復(fù)雜的代碼來(lái)獲取和設(shè)定簡(jiǎn)單控件的值,我們僅僅把它們鏈接到變量
  • ·我們沒(méi)有考慮當(dāng)用戶關(guān)閉窗口或者改變窗口大小后會(huì)發(fā)生什么
  • ·我們沒(méi)有寫額外的代碼讓它能夠跨平臺(tái)工作

相關(guān)文章

最新評(píng)論