Как реализовать флажок внутри заголовка tcl/tk Tablelist для реализации функции выбора всех . Я не смог найти ни одного ресурса. Возможно ли это любым способом? Пожалуйста, направляйте.
Установите флажок «Все» в заголовке списка таблиц Tcl/Tk.
comment
Вы имеете в виду этот виджет списка таблиц? Вы уверены, что именно этого ожидают ваши пользователи? (В основном они ожидают, что щелчок по заголовку будет означать «сортировать по этому столбцу»…)
- person Donal Fellows   schedule 15.12.2014
comment
Я имел в виду кнопку-флажок внутри заголовка, например: ssw. com.au/SSW/standards/rules/Images/SelectAllCheckBox_Web.jpg
- person Codename_DJ   schedule 15.12.2014
comment
Раньше я думал об использовании опции -labelcommand, но позже отказался от этой идеи по той же причине, которую вы упомянули в предыдущем комментарии.
- person Codename_DJ   schedule 15.12.2014
comment
Извините, забыл ответить на главный вопрос. Вы имеете в виду этот виджет списка таблиц? -да, я использую этот виджет списка таблиц
- person Codename_DJ   schedule 15.12.2014
Ответы (1)
Я обошел проблему, так как не нашел прямого способа добавить виджет в заголовок списка таблиц. я использовал два изображения png 16x16 (одно из неотмеченных полей ; другое отмеченное поле ) как -labelimage, который был переключен с помощью команды label.
Таким образом, пользователь получает представление о том, как щелкнуть это поле (фактически весь заголовок).
Пример кода: (не оптимизирован)
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
person
Community
schedule
16.12.2014