2014-04-29 23 views
5

Bir tkinter uygulaması gibi görünmeyen bir uygulama yapmaya çalışıyorum. Bir ttk Not Defteri kullanıyorum ve sekmeler seçildiğinde metnin etrafında bu küçük noktalı çizgiye sahipler. Korkunç görünüyor ve stilleri veya yapılandırmayı kullanarak kaldırmak için bir yol bulamıyorum. İşte netleştirmek için bir ekran görüntüsü: kodu içinTtk Dizüstü Bilgisayar Sekmesi Çıkıntılı Satırını Kaldırma

enter image description here

Düzenleme (Ben aslında sadece bir varsayılan stil şey kaldırmak çalışıyorum çünkü, korkunç yararlı olacak sanmıyorum.):

tab1 = ttk.Frame(tabs) 
tab1_frame = ttk.Frame(tab1, style=style.Frame) 
tab1_frame.pack(anchor='center', expand=1, fill='both') 
# stick some widgets in 
progress = ttk.Progressbar(tab1_frame, orient="horizontal", length=300, mode="determinate") 
progress.grid(column=1, row=1, columnspan=2, padx=style.padding, pady=style.padding) 
progress['maximum'] = 1000 
progress['value'] = 500 
# More widgets 
# Another tab 
tab2 = ttk.Frame(tabs) 
tab2_frame = ttk.Frame(tab2, style=style.Frame) 
tab2_frame.pack(anchor='center', expand=1, fill='both') 
# blah blah 
: bunu Dolum

tabs = ttk.Notebook(mainframe, width=319, height=210, style=style.Notebook) 
tabs.grid(column=0, row=1, sticky=('n', 'w', 'e', 's')) 
tabs.columnconfigure(0, weight=1) 
tabs.rowconfigure(0, weight=1) 

: Burada

dizüstü oluşturulmasıdır

İlgili stilleri:

style_config = Style() 
style_config.theme_use('default') 

style_config.configure(self.Notebook, 
    background=self.dark, 
    borderwidth=0) 

style_config.configure(self.Tab, 
    background=self.dark, 
    foreground='white', 
    padding=self.padding, 
    borderwidth=0) 
style_config.map(self.Tab, 
    background=[('selected', self.color1)]) 
+0

bazı kod yaparsan ben bilmiyorum sana –

+0

yardımcı yardımcı olacağını bu varsayılan etmektir beri yolu, örneğin arka plan olarak bunu aynı renk çizmek için, bu odak işaretin rengini değiştirmeye olabilir tüm temalar (varsayılan kullanıyorum) ve onu kaldırmaya çalışıyorum. Cevabımı yine de güncelleyeceğim. – jstaab

cevap

5

Sen sekme widget alt öğelerini değiştirerek bu odak işaretini kaldırabilirsiniz. Ttk widget'ları subelements'da ayrıştırıldı. Bu elemanların düzeni layout yöntemiyle (veya theme_create bir mizanpaj parametresinde) açıklanmıştır. Burada (eğer Tab veya başka bir türevi temaya doğrudan uygulanabilir) düzen işaretlerini kaldırmak için bir komut, yorumladı bölüm (style.layout("Tab") yoluyla alınan) odak

style.layout("Tab", 
[('Notebook.tab', {'sticky': 'nswe', 'children': 
    [('Notebook.padding', {'side': 'top', 'sticky': 'nswe', 'children': 
     #[('Notebook.focus', {'side': 'top', 'sticky': 'nswe', 'children': 
      [('Notebook.label', {'side': 'top', 'sticky': ''})], 
     #})], 
    })], 
})] 
) 

Daha hacky çizim için daha önce yol budur

style.configure("Tab", focuscolor=style.configure(".")["background"]) 
+0

Awesome; Bunu bugün deneyeceğim ve nasıl çalıştığını göreceğim! – jstaab

+0

Hey bu harika! İşe yaradı! Teşekkürler! – jstaab

İlgili konular