2016-04-12 32 views
0

Python 3.5'de daha sıkı kullanım Tk 8.6 göz önünde bulundurulduğunda.Daha küçük bir pencere parçacığı eklediğimde kişiselleştirilmiş çerçevem ​​neden kalmıyor?

Not: Aşağıdaki kodlarda, ttk.Style örneğine bakın.

Yaptığım stili olan bir Çerçevem ​​var. İyi çalışıyor. Görüntü boyutu olduğundan, 562x750 boyutuna sahibim. Bununla ilgili yanlış bir şey yok. İhtiyaç duyulursa kod şu şekilde olur:

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"})]})]) 

İhtiyaç duyulduğunda oluşturduğum combobox stili. Ben sadece arka planını değiştirdim (Combobox.field). Yukarıdaki kod örneği varsayarsak

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"})]) 

So ...

.. Onlara bir pencerede görünür hale sorunu olmaması gerekir. Ve çerçeveyi combobox için ebeveyn olarak kullanmadığım sürece her şey belirir. Sorunlar, yaptığımda başla. İşte benim kod kullandığım:

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) Benim tema oluşturulmasını sipariş için kullandığınız bir işlevdir.

Soru şu: Ana çerçeve olarak birleşik giriş kutusuna verdiğimde çerçeve neden kayboluyor? Combobox daha küçük olmalıdır.

+0

Bazı işlerden sonra ... Herhangi bir widget, arkasındaki "Frame" i gizleyecektir. Nasıl yapıldım ki bu olmadı mı? –

cevap

0

Her yere baktıktan sonra .. Tk, widget'ların arkasındakileri gizlemesini engelleyemiyor gibi görünüyor. Eh, bir Canvas kullandığınız dışında.