Re: Another Tablelist question

Liste des GroupesRevenir à cl tcl 
Sujet : Re: Another Tablelist question
De : gregor.ebbing (at) *nospam* gmx.de (greg)
Groupes : comp.lang.tcl
Date : 16. Nov 2024, 01:00:44
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vh8nbc$3lcgh$1@dont-email.me>
References : 1
User-Agent : Mozilla Thunderbird
Am 15.11.24 um 20:20 schrieb Alan Grunwald:
How do I tell the height occupied by a row (or a few rows) in a Tablelist?
 tl;dr
 I'm writing a GUI with a tablelist and a text widget displayed one above the other in a paned window. I'd like to position the sash programmatically so that the entire content of the tablelist is visible, with the remaining space in the paned window occupied by the text widget.
 I have observed that having the two widget heights in the ratio 1:3 works about right, but I'd like to get it spot on if I can.
 All the rows in the tablelist are the same height, so if I knew that height I could easily work out how much space is required for the five or six rows that I've inserted. On the other hand, one might conceivably have rows of different heights, so something to get the height of the first few rows (or maybe even any set of adjacent rows) would be nice.
 Thanks again (in advance)
 Alan
Hello,
I find your question interesting.
My script does not correspond to your suggestion.
Perhaps bbox can help you.
Gregor
package require Tk
package require tablelist
# Main window
ttk::panedwindow .pw -orient vertical
pack .pw -fill both -expand true
# Tablelist
tablelist::tablelist .pw.tl -columns {0 "Name" left 0 "Value" center} -height 5
.pw add .pw.tl -weight 0
# Text
text .pw.text -wrap word -background white
.pw add .pw.text -weight 1
# Tablelist insert datas
set data {
   {"Item 1" "10"}
   {"Item 2" "20"}
   {"Item 3" "30"}
   {"Item 4" "40"}
   {"Item 5" "50"}
   {"Item 6" "60"}
   {"Item 7" "70"}
}
foreach row $data {
   .pw.tl insert end $row
}
# https://www.nemethi.de/tablelist/tablelistWidget.html#bbox
wm geometry . 400x300
update idle
set hwin [winfo height .pw]
set hpw [.pw sash 0 $hwin]
set adjust [expr {$hwin - $hpw}]
update idle
#https://www.nemethi.de/tablelist/tablelistWidget.html#row_indices
#bottom instead of end, if the entire table is not visible
set bottomboxlist [.pw.tl bbox bottom]
set ybottombox [lindex $bottomboxlist 1]
set hbottombox [lindex $bottomboxlist 3]
set htl [.pw sash 0 [expr {$ybottombox + $hbottombox + $adjust }]]
puts "$hwin : $hpw : $adjust : $htl : $bottomboxlist : $ybottombox : $hbottombox"
#300 : 295 : 5 : 169 : 2 145 110 19 : 145 : 19

Date Sujet#  Auteur
15 Nov 24 * Another Tablelist question3Alan Grunwald
16 Nov 24 `* Re: Another Tablelist question2greg
16 Nov 24  `- Re: Another Tablelist question1Alan Grunwald

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal