2014-12-15 2 views
1

Как реализовать флажок внутри заголовка tcl/tk Tablelist для реализации выбора всех функций. Я не смог найти какой-либо ресурс. Возможно ли это в любом методе? Пожалуйста, направляйте.Выбрать все флажок в заголовке таблицы Tcl/Tk

+0

ли вы имеете в виду [это] (http://www.nemethi.de/tablelist/tablelist.html) tablelist виджет? Вы уверены, что этого ожидают ваши пользователи? (В основном они ожидают, что щелчок на заголовке означает «сортировать по этому столбцу» ...) –

+0

Я ссылался на контрольную кнопку внутри заголовка, например: http://www.ssw.com.au/SSW/standards/rules/Images/ SelectAllCheckBox_Web.jpg –

+0

Я ранее думал об использовании опции -labelcommand, но позже отбросил идею по той же причине, о которой вы говорили в предыдущих комментариях. –

ответ

1

Я обошел проблему, поскольку я не нашел прямого метода для добавления виджета в заголовок таблицы. Я использовал два 16x16 изображений PNG (один из непроверенных ящиков Unchecked, еще одна отмеченная ячейка Checked) в качестве -labelimage, которое было переключено с помощью команды label.

Таким образом, у пользователя есть ключ к действию щелчка на этом поле (на самом деле весь заголовок). enter image description here

Пример кода: (не оптимизированы)

package require Tk 
package require tablelist 
package require Img 

namespace eval ::test { 
    variable toggleState 0 
} 
proc onClick {tbl col} { 
if {$::test::toggleState==0} { 
    .tbl columnconfigure 0 -labelimage .image.uncheckedbox 
    ## ENTER YOUR CODE HERE TO DESELECT ALL CHECKBOX IN CELL WINDOW OF 0th COLUMN. 
    set ::test::toggleState 1 
} else { 
    .tbl columnconfigure 0 -labelimage .image.checkedbox 
    ## ENTER YOUR CODE HERE TO SELECT ALL CHECKBOX IN CELL WINDOW OF 0th COLUMN. 
    set ::test::toggleState 0 
} 

} 

tablelist::tablelist .tbl -columntitles {col1 col2 col3} -height 10 -width 100 -stretch all -stripebackground #e0e8f0 
grid .tbl -padx 5 -pady 5 -sticky news 

    image create photo .image.checkedbox -file {E:\path\checked.png} 
    image create photo .image.uncheckedbox -file {E:\path\unchecked.png} 

.tbl columnconfigure 0 -labelimage .image.uncheckedbox -labelcommand onClick