2016-04-12 47 views
0

考慮到tkinter在python 3.5中使用Tk 8.6。爲什麼當我添加一個較小的部件時,我的個人化框架不會留下

注意:在下面的代碼中,s是指ttk.Style的一個實例。

我有我製作的款式。它工作正常。我將它尺寸設置爲562x750,因爲它是圖像尺寸。它沒有錯。這裏是代碼,如果需要的話:

s.mainframeImage = tk.PhotoImage(file = os.path.join(IMG_DIR, "base_img", "SWTORLogo.png")) 
s.element_create("mainframe.background", "image", s.mainframeImage, sticky = "nswe", height = 562, width = 750) 
s.layout("mainframe.TFrame", [("Frame.border", {"sticky": "nswe", "children": [("mainframe.background", 
      {"sticky": "nswe"})]})]) 

這是我製作的組合框樣式,如果需要的話。我只改變了背景(Combobox.field)。

s.topComboboxImage = tk.PhotoImage(file = os.path.join(IMG_DIR, "base_img", "combobox_top.png")) 
s.element_create("topCombobox.field", "image", s.topComboboxImage, sticky = "nswe", height = 65, width = 750) 
s.layout("topCombobox.TCombobox", [("topCombobox.field", {"children": [("Combobox.downarrow", 
      {"side": "right", "sticky": "ns"}), ("Combobox.padding", {"children": [("Combobox.textarea", 
      {"sticky": "nswe"})], "expand": "1", "sticky": "nswe"})], "sticky": "nswe"})]) 

所以...假設上面的代碼被實例化..我應該沒有問題,使他們出現在窗口中。只要我不使用框架作爲組合框的父項,就會顯示一切。 問題從我開始時開始。 這裏是我的代碼我使用:

myApp = tk.Tk() 
getStyle(myApp) 
myApp.me = ttk.Frame(myApp, style = "mainframe.TFrame", height = 562, width = 750) 
myApp.me.grid(sticky = "nswe") 
myApp.me.me2 = ttk.Combobox(myApp.me, style = "topCombobox.TCombobox") 
myApp.me.me2.grid(column = 1, row = 1) 

getStyle(myApp)是我用來訂購我的主題創建功能。

所以問題是:爲什麼框架消失時,我把它作爲父母的組合框?組合框應該更小。

+0

經過一番努力......任何小部件都會隱藏背後的「Frame」。我怎麼能這樣做,所以它不會發生? –

回答

0

找到無處不在後..看起來Tk不能讓小部件隱藏它們背後的東西。那麼,除非你使用Canvas

相關問題