魚c筆記——Python的GUI編程(十五):Tkinter的組件Toplevel及Tk和Toplevel的方法

來源:互聯網
上載者:User

Toplevel(最上層視窗)組件類似於Frame組件,但Toplevel組件是一個獨立的最上層視窗,這種視窗通常擁有標題列、邊框等組件,和Tk()建立出來的根視窗是一樣的,共用著一樣的方法。


何時使用Toplevel組件。

Toplevel組件通常用在顯示額外的視窗、對話方塊或者其他快顯視窗上。


下面的例子,我們在root視窗添加一個按鈕用於建立一個最上層視窗,點一下來一個。

from tkinter import *root = Tk()def create():    top = Toplevel()    top.title('Python')    msg = Message(top, text='I love study')    msg.pack()Button(root, text='建立最上層視窗', command=create).pack()mainloop()




Tk(根視窗)和Toplevel(最上層視窗)的方法:

下邊這一系列方法用於與視窗管理器進行互動。他們可以被Tk(根視窗)調用,同時也適用於Toplevel(最上層視窗)。

注意:並非所有作業系統均完全支援下方所有方法的實現。


aspect(minNumber=None, minDenom=None, maxNumber=None, maxDenom=None,)

--控制該視窗的寬高比(width:height)

--寬高比限制在:minNumber/minDenom~maxNumber/maxDenom

--如果忽略參數,則返回一個4元組表示當前的限制(如果有的話)


attribute(*args)

--設定和擷取視窗屬性

--如果你只給出選項名,將返回當前視窗該選項的值

--注意:以下選項不支援關鍵字參數,你需要在選項前加橫崗(-)並用字串的方式表示,用逗號(,)隔開選項和值。

--例如你希望設定視窗的透明度為50%,你應該使用attribute("-alpha", 0.5)代替attribute(alpha=0.5)

--下方列舉了args可以使用各個選項的具體含義和用法:

alpha:(Windows,Mac)控制視窗的透明度

1.0表示不透明,0.0表示完全透明

該選項並不支援所有的系統,對於不支援的系統,Tkinter繪製一個不透明(1.0)的視窗

disabled:(Windows)禁用整個視窗(這時候你只能從工作管理員中關閉它)

fullscreen:(Windows,Mac)如果設定為True,則全螢幕顯示視窗

modified:(Mac)如果設定為True,該視窗被標記為改動過

titlepath:(Mac)設定視窗代理表徵圖的路徑

toolwindow:(Windows)如果設定為True,該視窗採用工具視窗的樣式

topmost:(Windows,Mac)如果設定為True,該視窗將永遠置頂


client(name=None)

--設定和擷取WM_CLIENT_MACHINE屬性

--如果要刪除WM_CLIENT_MACHINE屬性,賦值為空白字串即可

--該屬性僅支援X視窗系統的視窗管理器,其他系統均忽略


colormapwindows(*wlist)

--設定和擷取WM_COLORMAP_WINDOWS屬性

--該屬性僅支援X視窗系統的視窗管理器,其他系統均忽略


command(value=None)

--設定和擷取WM_COMMAND屬性

--該屬性僅支援X視窗系統的視窗管理器,其他系統均忽略


deiconify()

--顯示視窗

--預設情況下新建立的視窗都會顯示在螢幕上,但是用iconify()或withdraw()方法可以在螢幕上移除視窗


focusmodel(model=None)

--設定和擷取焦點模式


frame()

--返回一個字串表示當前系統特徵

--對於類Unix系統,傳回值是X視窗標識符

--對於Windows系統,傳回值是HWND強制轉換為長整形的結果


geometry(geometry=None)

--設定和擷取視窗的尺寸

--geometry的參數格式為:"%dx%d%+d%+d"%(width, height, xoffset, yoffset)


(wm_)grid(baseWidth=None, baseHeight=None, widthInc=None, heightInc=None)

--通知視窗管理器該視窗將以網格的形式重新調整尺寸

--baseWidth和baseHeight指定Tk_GeometryRequest要求的網格單元數

--widthInc和heightInc指定單元的高度和寬度


(wm_)group(window=None)

--將視窗添加到視窗群中

--window參數指定控制視窗群的主視窗

--如果忽略該選項,將返回當前視窗群的主視窗


(wm_)iconbitmap(bitmap=None, default=None)

--設定和擷取視窗的表徵圖

--例如root.iconbitmap(bitmap="python.ico")

--default參數可以用於指定由該視窗建立的子視窗的預設表徵圖


(wm_)iconify()

--將視窗表徵圖化(最小化)

--需要重新顯示視窗,用deiconify()方法

--該方法會使得state()返回"iconic"


(wm_)iconmask(bitmap=None)

--設定和擷取位元影像編碼


(wm_)iconname(newName=None)

--設定和擷取當前視窗表徵圖化(最小化)時的表徵圖名字


(wm_)iconposition(x=None, y=None)

--設定和擷取當前視窗表徵圖化(最小化)時的表徵圖位置


(wm_)iconwindow(pathName=None)

--設定和擷取當前視窗表徵圖化(最小化)時的組件視窗

--該方法會使得state()返回“icon”


(wm_)maxsize(width=None, height=None)

--設定和擷取該視窗的最大尺寸


(wm_)minsize(width=None, height=None)

--設定和擷取該視窗的最小尺寸


(wm_)overrideredirect(boolean=None)

--如果參數為True,該視窗忽略所有的小組件(也就是說該視窗將沒有傳統的標題列、邊框等組件)


(wm_)positionfrom(who=None)

--指定視窗位置由“誰決定

--如果who參數是“user”,視窗位置由使用者決定

--如果who參數是“program”,視窗位置由系統決定


(wm_)protocol(name=None, func=None)

--將回呼函數func與相應的規則name綁定

--name參數可以是“WM_DELETE_WINDOW”:視窗被關閉的時候

--name參數可以是“WM_SAVE_YOURSELF”:視窗被儲存的時候

--name參數可以是“WM_TAKE_FOCUS”:視窗獲得焦點的時候


(wm_)resizable(width=None, height=None)

--指定是否可以改變該視窗的尺寸

--width為True說明允許調整視窗的水平尺寸

--height為True說明允許調整視窗的垂直尺寸


(wm_)sizefrom(who=None)

--指定視窗尺寸由“誰決定

--如果who參數是“user”,視窗尺寸由使用者決定

--如果who參數是“program”,視窗尺寸由系統決定


(wm_)state(newstate=None)

--設定和獲得當前視窗的狀態

--newstate的只可以是'normal', 'iconoc'(見iconify), 'withdraw'(見withdraw), 'icon'(見iconwindow)和'zoomed'(放大,Windows特有)


(wm_)title(string=None)

--設定視窗的標題


(wm_)transient(master=None)

--指定為master的臨時視窗


(wm_)withdraw()

--將視窗從螢幕上移除(並沒有銷毀)

--需要重新顯示視窗,使用deiconify()方法

--該方法會使得state()返回"withdraw"


wm_aspect(minNumber=None, minDenom=None, maxNumber=None, manDenom=None)

--見上方aspect()


wm_attributes(*args)

--見上方attributes()


wm_client(name=None)

--見上方client()


wm_colormapwindows(*wlist)

--見上方colormapwindows()


wm_command(value=None)

--見上方command()


wm_deiconify()

--見上方deiconify()


wm_focusmodel(model=None)

--見上方focusmodel()


wm_frame()

--見上方frame()


wm_geometry(geometry=None)

--見上方geometry()


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.