如何找到 tk 小部件的逻辑布局?
How to find logical layout of tk widget?
我正在深入学习 ttk,想知道如何为任何小部件找到逻辑布局。现在只是探索和做小实验。在以下代码中,尝试显示文本,但未记录复选按钮的布局详细信息。
所以我的问题是如何轻松地为任何小部件找到它们。
This Ttk style guide 确实是很好的参考,但对深入布局没有帮助。
谢谢。
ttk::style element create pin vsapi EXPLORERBAR 3 {
{pressed !selected} 3
{active !selected} 2
{pressed selected} 6
{active selected} 5
{selected} 4
{} 1
}
ttk::style layout Explorer.Pin {Explorer.Pin.pin -sticky news}
pack [ttk::checkbutton .pin -style Explorer.Pin]
要查找给定小部件使用的样式,请使用 winfo class
命令:
% ttk::checkbutton .b
% winfo class .b
TCheckbutton
然后您可以使用 ttk::style layout
转储布局:(重新格式化以提高可读性)
% ttk::style layout TCheckbutton
Checkbutton.padding -sticky nswe -children {
Checkbutton.indicator -side left -sticky {}
Checkbutton.focus -side left -sticky w -children {
Checkbutton.label -sticky nswe
}
}
这声明了元素及其放置方式。因此,要替换 indicator
元素,您可以复制此布局以定义引用新元素的新布局:
% ttk::style layout Pin.TCheckbutton {
Checkbutton.padding -sticky nswe -children {
Checkbutton.pin -side left -sticky {}
Checkbutton.focus -side left -sticky w -children {
Checkbutton.label -sticky nswe
}
}
}
% place [ttk::checkbutton .pin -text text -style Pin.TCheckbutton] -x 10 -y 10
您应该注意,一些元素通过 ttk::style configure
命令获取附加到样式的附加配置,因此在复制样式时您也应该复制配置:
ttk::style configure $new_stylename {*}[ttk::style configure $old_stylename]
而且很可能还有小部件状态图 (ttk::style map
)。
阅读 <Tcl/Tk folder>/library/ttk
中的 ttk 库文件应该可以清楚地了解这些东西是如何组合在一起的。 vsapi.tcl 文件特别为 Windows.
做了相当多的布局
我正在深入学习 ttk,想知道如何为任何小部件找到逻辑布局。现在只是探索和做小实验。在以下代码中,尝试显示文本,但未记录复选按钮的布局详细信息。 所以我的问题是如何轻松地为任何小部件找到它们。
This Ttk style guide 确实是很好的参考,但对深入布局没有帮助。 谢谢。
ttk::style element create pin vsapi EXPLORERBAR 3 {
{pressed !selected} 3
{active !selected} 2
{pressed selected} 6
{active selected} 5
{selected} 4
{} 1
}
ttk::style layout Explorer.Pin {Explorer.Pin.pin -sticky news}
pack [ttk::checkbutton .pin -style Explorer.Pin]
要查找给定小部件使用的样式,请使用 winfo class
命令:
% ttk::checkbutton .b
% winfo class .b
TCheckbutton
然后您可以使用 ttk::style layout
转储布局:(重新格式化以提高可读性)
% ttk::style layout TCheckbutton
Checkbutton.padding -sticky nswe -children {
Checkbutton.indicator -side left -sticky {}
Checkbutton.focus -side left -sticky w -children {
Checkbutton.label -sticky nswe
}
}
这声明了元素及其放置方式。因此,要替换 indicator
元素,您可以复制此布局以定义引用新元素的新布局:
% ttk::style layout Pin.TCheckbutton {
Checkbutton.padding -sticky nswe -children {
Checkbutton.pin -side left -sticky {}
Checkbutton.focus -side left -sticky w -children {
Checkbutton.label -sticky nswe
}
}
}
% place [ttk::checkbutton .pin -text text -style Pin.TCheckbutton] -x 10 -y 10
您应该注意,一些元素通过 ttk::style configure
命令获取附加到样式的附加配置,因此在复制样式时您也应该复制配置:
ttk::style configure $new_stylename {*}[ttk::style configure $old_stylename]
而且很可能还有小部件状态图 (ttk::style map
)。
阅读 <Tcl/Tk folder>/library/ttk
中的 ttk 库文件应该可以清楚地了解这些东西是如何组合在一起的。 vsapi.tcl 文件特别为 Windows.