2016-09-11 14 views
0

Я надеюсь, что эксперт tcl/tk поможет ответить на этот вопрос супер-ниши относительно Tix CheckList Заголовок Hlist. Все, что я хочу сделать, это изменить цвет фона с уродливого серого на белый.Tkinter Tix Checklist Hlist Параметры конфигурации заголовка

Мне очень сложно даже узнать, какие опции (cnf={} или **kw) Я могу использовать для НИЧЕГО в tix. Я обнаружил, что я могу сделать self.checklist.hlist.config().keys(), которая возвращает:

['background', 'bd', 'bg', 'borderwidth', 'browsecmd', 'columns', 'command', 
'cursor', 'dragcmd', 'drawbranch', 'dropcmd', 'fg', 'font', 'foreground', 
'gap', 'header', 'height', 'highlightbackground', 'highlightcolor', 
'highlightthickness', 'indent', 'indicator', 'indicatorcmd', 'itemtype', 
'padx', 'pady', 'relief', 'selectbackground', 'selectborderwidth', 
'selectforeground', 'selectmode', 'separator', 'sizecmd', 'takefocus', 
'wideselection', 'width', 'xscrollcommand', 'yscrollcommand'] 

Я не знаю, как сделать это для объекта фактического заголовка, чтобы увидеть, какие варианты доступны.

Это то, что он выглядит следующим образом:

Tix CheckList Hlist Header

Вот код, который создает это:

import tkinter as tk 
from tkinter import tix 

class whatever(tk.Frame): 
    def __init__(self, parent): 
    super(whatever, self).__init__(parent) 
    self.parent = parent 

    self.checklist = tix.CheckList(self.parent, browsecmd=self.selectItem, 
            options='hlist.columns 1', highlightthickness=1, 
            highlightcolor='#B7D9ED') 
    self.checklist.grid(sticky='ew', padx=20) 

    self.checklist.hlist.config(bg='white', bd=0, selectmode='none', selectbackground='white', 
           selectforeground='black', drawbranch=True, pady=5, header=True) 

    self.checklist.hlist.header_create(0, itemtype=tix.TEXT, text='My Heading Text', 
             relief='flat') 

    self.checklist.hlist.add("CL1", text="checklist1") 
    self.checklist.hlist.add("CL1.Item1", text="subitem1") 
    self.checklist.setstatus("CL1", "on") 
    self.checklist.setstatus("CL1.Item1", "off") 

    def selectItem(self, item): 
     print(item) 

root = tix.Tk() 
whatever(root) 
root.mainloop() 

Дополнительная информация:

Кстати, я в основном используя этот сайт, чтобы выяснить, какие методы доступны для hlist - http://epydoc.sourceforge.net/stdlib/Tix.HList-class.html

Этот пример был полезен также: https://svn.python.org/projects/stackless/trunk/Demo/tix/samples/SHList2.py

Что ли я Пробовал ...

Много вещей в течение нескольких часов на конец. Я думаю, что это должно быть в:

self.checklist.hlist.header_configure(0, background='white') 

но я пробовал: background, selectbackground, bg, color ... и многое другое. Все они заканчиваются тем же сообщением _tkinter.TclError: unknown option "-NAMEHERE".

ответ

1

Просто добавьте headerbackground параметр в header_create() метод:

... 
self.checklist.hlist.header_create(0, itemtype=tix.TEXT, text='My Heading Text', 
headerbackground="red", relief='flat') 
... 
+0

Я бы поклялся вверх и вниз, что я пробовал. Очевидно нет! Огромное спасибо. Это сводило меня с ума! Кажется, сейчас так очевидно. – Jarad

+0

Мне очень любопытно, вы нашли это в документации или сделали что-то, чтобы узнать, какие параметры конфигурации доступны? Просто любопытно для будущего. – Jarad