Параметры конфигурации заголовка Tkinter Tix Checklist Hlist

Я надеюсь, что эксперт по tcl/tk поможет ответить на этот супернишевый вопрос, касающийся заголовка 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"message.


person Jarad    schedule 11.09.2016    source источник


Ответы (1)


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

...
self.checklist.hlist.header_create(0, itemtype=tix.TEXT, text='My Heading Text', 
headerbackground="red", relief='flat')
...
person Parviz Karimli    schedule 12.09.2016
comment
Я бы поклялся вверх и вниз, что пробовал это. Очевидно нет! Большое спасибо. Это сводило меня с ума! Теперь это кажется таким очевидным. - person Jarad; 12.09.2016
comment
Мне очень любопытно, вы нашли это в документации или вы что-то сделали, чтобы увидеть, какие параметры конфигурации были доступны? Просто интересно на будущее. - person Jarad; 12.09.2016