Tcl/Tk:当用户更改窗口大小时,如何缩放窗口小部件
我有一个窗口,里面有小部件。当我手动重新调整窗口大小时,窗口小部件会在高度降低时自行调整大小,但不会在宽度改变或高度超出初始高度时进行调整。如何使窗口小部件堆叠到窗口的边框上 用于创建窗口的代码:Tcl/Tk:当用户更改窗口大小时,如何缩放窗口小部件,tcl,tk,Tcl,Tk,我有一个窗口,里面有小部件。当我手动重新调整窗口大小时,窗口小部件会在高度降低时自行调整大小,但不会在宽度改变或高度超出初始高度时进行调整。如何使窗口小部件堆叠到窗口的边框上 用于创建窗口的代码: wm title $base "KitKite Sparam Viewer" set frm_main [frame $base.main_frm] pack $frm_main grid [frame $frm_main.graph ] -row 1 -column 1 set g [
wm title $base "KitKite Sparam Viewer"
set frm_main [frame $base.main_frm]
pack $frm_main
grid [frame $frm_main.graph ] -row 1 -column 1
set g [sparam_graph_widget $frm_main.graph graph]
grid [set frm [frame $frm_main.frm]] -row 1 -column 2
#from and to frame
set from [frame $frm.from -relief ridge -bd 2]
set from_lbl [label $from.lbl -text "From:"]
set f_tbl_frm [frame $from.tbl_f]
set to [frame $frm.to -relief ridge -bd 2]
set to_lbl [label $to.lbl -text "To:"]
set t_tbl_frm [frame $to.tbl_t]
grid $from -column 1 -row 1 -sticky nwe
grid $from_lbl -row 1 -sticky nsew
grid $f_tbl_frm -row 2 -sticky nsew
grid $to -column 2 -row 1 -sticky nwe
grid $to_lbl -row 1 -sticky nsew
grid $t_tbl_frm -row 2 -sticky nsew
set from_t [sparam_table_widget $f_tbl_frm f_tbl]
set to_t [sparam_table_widget $t_tbl_frm t_tbl]
set data [frame $frm.data]
set data_lbl [label $data.lbl -text "Choose data type to show"]
set isi [checkbutton $data.cb_isi -variable cb(isi) -command [list __sp_data_changed isi $g] -text ISI ]
set xt [checkbutton $data.cb_xt -variable cb(xt) -command [list __sp_data_changed xt $g] -text XT ]
set ref [checkbutton $data.cb_ref -variable cb(ref) -command [list __sp_data_changed ref $g] -text Reflection]
set conf_button [button $data.bt_conf -text "Configure connections" -command [list __sp_configure_datapath]]
grid $data -column 1 -row 2 -columnspan 2 -sticky new
grid $data_lbl -column 1 -row 1 -columnspan 2 -sticky nsew
grid $isi -column 1 -row 2 -sticky nsw
grid $xt -column 1 -row 3 -sticky nsw
grid $ref -column 1 -row 4 -sticky nsw
grid $conf_button -column 2 -row 2 -rowspan 3 -sticky nsew
grid rowconfigure $frm 1 -weight 4 -uniform 1
grid rowconfigure $frm 2 -weight 1 -uniform 1
grid rowconfigure $frm_main 1 -weight 5 -uniform 1
$base
是使用toplevel
sparam\u graph\u widget
和sparam\u table\u widget
是创建图形和表格的自定义widget并将其放置在框架内的过程(相应地)为了至少有一个widget扩展以消耗空间,您需要将至少一列设置为非零权重
grid columnconfigure $containerWidget $someWidgetOrIndex -weight 1
请注意,一旦这样做,该列将优先处理水平方向上的所有大小更改。您可以通过将多个列设置为非零权重,并为不同的列赋予不同的权重来进行调整(-weight 2
将收到比-weight 1
大两倍的更改)
您可能还需要调整用于包装外部框架的选项。通过将不同的帧设置为不同的颜色进行调试,这样您就可以看到发生了什么…为了让至少一个小部件扩展以占用空间,您需要将至少一列设置为非零权重
grid columnconfigure $containerWidget $someWidgetOrIndex -weight 1
请注意,一旦这样做,该列将优先处理水平方向上的所有大小更改。您可以通过将多个列设置为非零权重,并为不同的列赋予不同的权重来进行调整(-weight 2
将收到比-weight 1
大两倍的更改)
您可能还需要调整用于包装外部框架的选项。通过将不同的帧设置为不同的颜色进行调试,以便您可以看到发生了什么