У меня есть вопрос об ограничении изменения размера виджета text
Tk
. У меня есть следующий код с двумя text
виджетами, выстроенными в линию друг над другом. Проблема в том, что когда я изменяю размер текстового виджета, содержащего «Box2», он просто исчезает, как показано на изображениях ниже.
Я хочу сделать изменение размера так, чтобы "Box2" также был виден. Если на определенной стадии изменения размера, если «Box2» не может быть отображено, то изменение размера до меньшего размера должно быть запрещено (хотя изменение размера до большего размера должно быть разрешено).
Нормальный размер
Изменение размера
Код для воспроизведения проблемы:
#----------------------------------------------
# scrolled_text from Brent Welch's book
#----------------------------------------------
proc scrolled_text { f args } {
frame $f
eval {text $f.text -wrap none \
-xscrollcommand [list $f.xscroll set] \
-yscrollcommand [list $f.yscroll set]} $args
scrollbar $f.xscroll -orient horizontal \
-command [list $f.text xview]
scrollbar $f.yscroll -orient vertical \
-command [list $f.text yview]
grid $f.text $f.yscroll -sticky news
grid $f.xscroll -sticky news
grid rowconfigure $f 0 -weight 1
grid columnconfigure $f 0 -weight 1
return $f.text
}
proc horiz_scrolled_text { f args } {
frame $f
eval {text $f.text -wrap none \
-xscrollcommand [list $f.xscroll set] } $args
scrollbar $f.xscroll -orient horizontal -command [list $f.text xview]
grid $f.text -sticky news
grid $f.xscroll -sticky news
grid rowconfigure $f 0 -weight 1
grid columnconfigure $f 0 -weight 1
return $f.text
}
set st1 [scrolled_text .t1 -width 40 -height 10]
set st2 [horiz_scrolled_text .t2 -width 40 -height 2]
pack .t1 -side top -fill both -expand true
pack .t2 -side top -fill x
$st1 insert end "Box1"
$st2 insert end "Box2"