Есть такой код
proc create_gui {} {
# выбор устройства, кнопка подключения
pack [ttk::combobox .devices -textvariable device -values [list] -state readonly] -pady 5 -padx 5 -side top -fill x
pack [frame .buttons] -fill x -side top
pack [ttk::button .buttons.btn_refresh -text "Refresh" -command refresh] -padx 5 -pady 5 -side left -fill x -expand 1
pack [ttk::button .buttons.btn_connect -text "Connect" -command connect] -padx 5 -pady 5 -side left -fill x -expand 1
pack [ttk::button .buttons.btn_exit -text "Exit" -command {cleanup; exit;}] -padx 5 -pady 5 -side left -fill x -expand 1
# напряжение
pack [frame .voltage_label] -padx 5 -pady 5 -fill both -expand 0
pack [label .voltage_label.lbl1 -text "Voltage: "] -padx 5 -pady 5 -side left -fill x -expand 0
pack [label .voltage_label.value -textvariable ::voltage] -pady 5 -side left -fill x -expand 0
pack [label .voltage_label.lbl2 -text "V"] -pady 5 -side left -fill x -expand 0
# логи
pack [frame .log_frame] -padx 5 -pady 5 -fill x -expand 0
pack [ttk::scrollbar .log_frame.sby -orient vert -command {.log_frame.log yview}] -padx 5 -pady 5 -side right -fill both -expand 0
pack [text .log_frame.log -relief sunken -yscrollcommand {.log_frame.sby set}] -padx 5 -pady 5 -fill both -expand 1
pack [canvas .c -width 500 -height 500] -fill both -expand 1
set ::outer_oval [.c create oval 450 450 50 50]
set ::inner_oval [.c create oval 300 300 200 200 -fill blue]
}
create_gui
При ресайзе (уменьшении высоты) такого окна канвас .c с кругами пропадает за нижней границей окна, в то время как остальные виджеты начинают уменьшаться, чтобы влезть в окно. Как лечить?