九. 小部件Checkbutton
复选框小部件(有时称为 “复选框”)是允许用户阅读和 选择双向选项。上图显示了如何 复选按钮在关闭 (0) 和打开 (1) 状态下查看 实现:这是两个复选按钮的屏幕截图 使用 24 点时代字体。
该指标是 显示其状态的复选框,标签是显示的文本 旁边。
-
您将需要创建一个控制变量,一个实例 的类,因此您的程序可以 查询并设置复选按钮的状态。请参见下面的第 52 节 “控制变量:小部件背后的值”。
IntVar
-
您还可以使用事件绑定来响应用户 对复选框的操作;请参阅下文第 54 节 “事件”。
-
您可以禁用复选按钮。这会改变其 外观“变灰”并使其 对鼠标无响应。
-
您可以摆脱复选按钮指示器并制作 整个小部件是一个“推-推”按钮 设置时看起来凹陷,看起来凸起 当它被清除时。
在现有父窗口中创建复选框,或 框架:parent
w = tk.Checkbutton(parent, option, ...)
构造函数返回一个新的小部件。选项包括:Checkbutton
表 16.复选框
小部件选项
activebackground | 复选按钮位于 光标。请参见第 5.3 节 “颜色”。 |
activeforeground | 复选按钮位于 光标。 |
anchor | 如果小部件所在的空间大于它 需要,此选项指定复选框的位置 将坐在那个空间。缺省值为 。有关允许的值,请参见第 5.5 节 “锚点”。为 例如,如果使用 , 小部件将放置在左上角 空间。anchor=tk.CENTER anchor=NW |
bg 或background | 后面显示的正常背景色 标签和指示器。请参见第 5.3 节 “颜色”。 对于选项,这 指定在 位图。bitmap |
bitmap | 要在按钮上显示单色图像,请设置此项 位图选项;请参见第 5.7 节 “位图”。 |
bd 或borderwidth | 指标周围的边框大小。 默认值为 5 像素。有关可能的值,请参见第 1.<> 节 “维度”。 |
command | 每次用户时要调用的过程 更改此复选框的状态。 |
compound | 使用此选项可同时显示文本和图形, 可以是位图或图像,在 按钮。允许值描述位置 相对于文本的图形,可以是 、 、 或 中的任何一个。例如,将定位图形 在文本的左侧。tk.BOTTOM tk.TOP tk.LEFT tk.RIGHT tk.CENTER compound=tk.LEFT |
cursor | 如果将此选项设置为游标名称(请参见第 5.8 节 “游标”),鼠标光标将更改 当它位于复选按钮上方时,到该模式。 |
disabledforeground | 用于呈现已禁用复选按钮文本的前景色。 默认值是默认值的点缀版本 前景色。 |
font | 用于 的字体。请参见第 5.4 节 “键入字体”。
|
fg 或foreground | 用于的颜色 呈现 .对于选项, 这指定了 1 位显示的颜色 位图。
bitmap |
height | 复选按钮上的文本行数。 默认值为 1。 |
highlightbackground | 颜色 当复选按钮没有时焦点加亮显示 重点。请参见第 53 节 “焦点:路由键盘输入”。 |
highlightcolor | 颜色 当复选按钮具有焦点时,焦点加亮显示。 |
highlightthickness | 焦点的粗细突出显示。默认值为 1. 设置为 0 可禁止显示焦点 高亮。 |
image | 要在按钮上显示图形图像,请设置此项 图像对象的选项。请参见第 5.9 节 “图像”。 |
indicatoron | 通常,复选按钮显示为其指示器 a 框,显示复选框是否已设置或 不。您可以通过设置 来获取此行为。但是,如果设置 ,指示器将消失, 整个小部件变成了一个推-推按钮 当它被清理和沉没时看起来会凸起 设置时。您可能希望增加该值以使其更易于查看 此类控件的状态。indicatoron=1 indicatoron=0 borderwidth |
justify | 如果包含多行,则此选项控制如何 文本是两端对齐的:、 或 。
tk.CENTER tk.LEFT tk.RIGHT |
offrelief | 默认情况下,当按钮关闭时,复选按钮使用浮雕样式 (清除);使用此选项可指定不同的 按钮时显示的浮雕样式 关。有关值,请参见第 5.6 节 “浮雕样式”。tk.RAISED |
offvalue | 通常,复选按钮的关联控件 变量在清除(关闭)时将设置为 0。 您可以为关闭状态提供备用值 通过设置为该值。offvalue |
onvalue | 通常,复选按钮的关联控件 变量在设置为 (on) 时将设置为 1。你 可以为打开状态提供备用值 设置为该值。onvalue |
overrelief | 使用此选项可将浮雕样式指定为 当鼠标悬停在复选按钮上时显示; 请参见第 5.6 节 “浮雕样式”。 |
padx | How much space to leave to the left and right of the checkbutton and text. Default is 1 pixel. For possible values, see Section 5.1, “Dimensions”. |
pady | How much space to leave above and below the checkbutton and text. Default is 1 pixel. |
relief | With the default value, , the checkbutton does not stand out from its background. You may set this option to any of the other styles (see Section 5.6, “Relief styles”), or use , which gives you a solid black frame around it. relief=tk.FLAT relief=tk.SOLID |
selectcolor | The color of the checkbutton when it is set. Default is . selectcolor='red' |
selectimage | If you set this option to an image, that image will appear in the checkbutton when it is set. See Section 5.9, “Images”. |
state | The default is , but you can use to gray out the control and make it unresponsive. If the cursor is currently over the checkbutton, the state is . state=tk.NORMAL state=tk.DISABLED tk.ACTIVE |
takefocus | The default is that the input focus (see Section 53, “Focus: routing keyboard input”) will pass through a checkbutton. If you set , focus will not pass through it. takefocus=0 |
text | The label displayed next to the checkbutton. Use newlines () to display multiple lines of text. '\n' |
textvariable | If you need to change the label on a checkbutton during execution, create a StringVar (see Section 52, “Control variables: the values behind the widgets”) to manage the current value, and set this option to that control variable. Whenever the control variable's value changes, the checkbutton's annotation will automatically change as well. |
underline | 默认值为 -1 时,没有 文本标签的字符带有下划线。设置 此选项用于文本中字符的索引 (从零开始计数)以下划线该字符。 |
variable | 跟踪当前状态的控制变量 的复选按钮;请参见第 52 节 “控制变量:小部件背后的值”。通常这个 变量是一个 ,表示清除和表示 设置,但请参阅上面的 和 选项。IntVar 0 1 offvalue onvalue |
width | 复选按钮的默认宽度由下式决定 显示的图像或文本的大小。您可以 将此选项设置为多个字符和 复选框将始终为这么多留出空间 字符。 |
wraplength | 通常,行不会换行。您可以设置此项 选项为多个字符,所有行都将 被分成不超过该数字的碎片。 |
复选按钮的方法包括:
.deselect()
清除(关闭)复选按钮。
.flash()
在其之间闪烁几次复选按钮 活动和正常颜色,但保持原样 开始。
.invoke()
可以调用此方法来获取与 如果用户单击复选按钮以 更改其状态。
.select()
设置(打开)复选按钮。
.toggle()
如果已设置,则清除复选框,如果清除则进行设置。
十. 小部件Entry
小部件的目的是让 用户查看和修改单行 发短信。Entry
-
如果要显示可编辑的多行文本,请参见第 24 节 “文本构件”。
-
如果要显示用户无法修改的一行或多行文本, 请参见第 12 节 “标签小部件”。
一些定义:
-
所选内容突出显示 小部件中文本的区域, 如果有的话。
Entry
通常,选择由用户使用 鼠标,所选文本将复制到系统的 剪贴板。但是,Tkinter允许您控制 所选文本是否复制到 剪贴板。您还可以在程序控制下选择文本。
Entry
-
插入光标显示位置 将插入新文本。它仅在以下情况下显示 用户单击小部件中某处的鼠标。它 通常显示为闪烁的垂直线 控件。您可以在多个中自定义其外观 方式。
-
给出小部件显示文本中的位置 作为索引。有几个 指定索引的方法:
-
与普通的 Python 索引一样,从 0 开始。
-
常量是指 位置在现有文本之后。
tk.END
-
常量是指 插入光标的当前位置。
tk.INSERT
-
常量是指 所选内容的第一个字符(如果有 选择。
tk.ANCHOR
-
您可能需要弄清楚哪个字符位置 在小部件中对应于给定的鼠标 位置。要简化该过程,您可以使用 一个索引 一个形式的字符串,其中 是 左边缘之间的水平距离(以像素为单位) 小部件和鼠标。 这样的索引将指定字符 水平鼠标位置。
'@
n
'n
Entry
-
在根目录中创建新小组件 名为 : 的窗口或框架:Entry
parent
w = tk.Entry(parent, option, ...)
此构造函数返回新小部件。选项包括:Entry
表 17.条目
小部件选项
bg 或background | 入口区域内的背景色。 默认值为浅灰色。 |
bd 或borderwidth | 入口区域周围的边框宽度;请参见第 5.1 节 “尺寸”。默认值为 <> 像素。 |
cursor | 鼠标在条目内时使用的光标 控件;请参见第 5.8 节 “游标”。 |
disabledbackground | 当 小部件处于状态。 有关选项值,请参阅上文。tk.DISABLED bg |
disabledforeground | 在 小部件处于状态。 有关选项值,请参见下文。tk.DISABLED fg |
exportselection | 默认情况下,如果在小部件中选择文本,它会自动导出 到剪贴板。要避免此导出,请使用 。Entry exportselection=0 |
fg 或foreground | 用于呈现文本的颜色。默认值为 黑。 |
font | 用于在小部件中输入的文本的字体 用户。请参见第 5.4 节 “键入字体”。 |
highlightbackground | 当小部件执行时,焦点的颜色会突出显示 没有焦点。请参见第 53 节 “焦点:路由键盘输入”。 |
highlightcolor | 小部件时焦点突出显示中显示的颜色 有重点。 |
highlightthickness | 焦点突出显示的厚度。 |
insertbackground | 默认情况下,插入光标(显示 文本中新键盘输入将指向的位置 插入)为黑色。要获得不同颜色的 插入光标,设置为任何颜色;请参见第 5.3 节 “颜色”。insertbackground |
insertborderwidth | 默认情况下,插入光标是一个简单的 矩形。您可以通过设置为 5-D 的尺寸来获取具有浮雕效果的光标(请参见第 6.3 节 “浮雕样式”) 边境。如果这样做,请确保该选项至少为两次 该值。tk.RAISED insertborderwidth insertwidth |
insertofftime | 默认情况下,插入光标闪烁。您可以 设置为 毫秒,以指定插入的时间 光标消耗掉。默认值为 300。如果使用 ,则插入 光标根本不会闪烁。insertofftime insertofftime=0 |
insertontime | 与 类似 ,这 选项指定光标花费的时间 每眨眼。默认值为 600(毫秒)。insertofftime |
insertwidth | 默认情况下,插入光标的宽度为 2 像素。 您可以通过设置为任何维度来调整此设置。insertwidth |
justify | 此选项控制在以下情况下如何对齐文本 文本不会填充微件的宽度。这 值可以是 (默认值)、或 。tk.LEFT tk.CENTER tk.RIGHT |
readonlybackground | 当 小部件的选项是 。state 'readonly' |
relief | 选择周围的三维阴影效果 文本条目。请参见第 5.6 节 “浮雕样式”。这 默认值为 。relief=tk.SUNKEN |
selectbackground | 用于显示所选内容的背景色 发短信。请参见第 5.3 节 “颜色”。 |
selectborderwidth | 要在选定边框周围使用的边框宽度 发短信。默认值为一个像素。 |
selectforeground | 所选文本的前景色(文本)颜色。 |
show | 通常,用户键入的字符会显示 在条目中。要设置“密码” 将每个字符作为星号回显的条目, 设置。show='*' |
state | 使用此选项可禁用微件,以便用户无法键入 任何东西都进去。用于禁用小组件,以允许用户再次输入。您的程序还可以 确定光标当前是否位于 通过询问此选项的小部件;它将 具有鼠标时的值 结束了。您也可以将此选项设置为 ,这类似于状态,但 仍然可以选择或复制小部件。Entry state=tk.DISABLED state=tk.NORMAL tk.ACTIVE 'disabled' tk.DISABLED |
takefocus | 默认情况下,焦点将通过输入按 Tab 键 部件。将此选项设置为 0 以获取微件 不在序列中。对于焦点的讨论, 请参见第 53 节 “焦点:路由键盘输入”。 |
textvariable | 为了能够检索当前文本 在条目小组件中,您必须将此选项设置为 类的实例; 请参见第 52 节 “控制变量:小部件背后的值”。您可以 使用 检索文本 或设置 它使用 ,其中 关联的控制变量。StringVar
|
validate | 您可以使用此选项设置微件,以便 其内容由验证函数检查 某些时候。请参见第 10.2 节 “向条目小部件添加验证”。 |
validatecommand | 验证小组件文本的回调。 请参见第 10.2 节 “向条目小部件添加验证”。 |
width | 条目的大小(以字符为单位)。默认值为 20. 对于比例字体,物理长度 该小部件将基于 a 的平均宽度 字符乘以选项的值。width |
xscrollcommand | 如果您预计用户会经常输入更多文本 比小部件的屏幕大小,您可以链接 滚动条的条目小部件。设置此选项 到滚动条的方法。 有关更多信息,请参见第 10.1 节 “滚动条目构件”。.set |
对象上的方法包括:Entry
.delete(
first
, last
=None)
从构件中删除字符,从 一个在索引,最多但不包括字符在 位置。如果省略第二个参数,则仅 删除位置上的单个字符。first
last
first
.get()
以字符串形式返回条目的当前文本。
.icursor(
index
)
将插入光标设置在字符之前 给定的索引。
.index(
index
)
移动条目的内容,使字符 在给定的索引是 最左边的可见字符。在以下情况下无效 文本完全适合条目。
.insert(
index
, s
)
在 给定索引处的字符。s
.scan_dragto(
x
)
请参阅下面的方法。scan_mark
.scan_mark(
x
)
使用此选项可设置快速扫描 具有的小部件的内容 支持水平滚动的滚动条。Entry
要实现此功能,请绑定鼠标的 调用 的处理程序的按钮向下事件 , 其中 是当前鼠标位置。然后将事件绑定到一个处理程序 调用 ,其中 是当前鼠标位置。该方法滚动 小部件连续在 速率与水平距离成正比 看涨期权时的仓位和当前仓位。scan_mark(
x
)x
x
<Motion>
scan_dragto(
x
)x
x
scan_dragto
Entry
scan_mark
.select_adjust(
index
)
此方法用于确保选择包括 指定索引处的字符。如果 选择已经包含该字符,什么都没有 发生。否则,选择将从其展开 当前位置(如果有)包括位置 。index
.select_clear()
清除所选内容。如果当前没有 选择,没有效果。
.select_from(
index
)
将索引位置设置为 由 和 选择的字符 选择该字符。tk.ANCHOR
index
.select_present()
如果有选择,则返回 真,否则返回假。
.select_range(
start
, end
)
在 程序控制。选择从索引开始的文本,直到但不包括字符 索引。职位 必须在职位之前。start
end
start
end
要选择条目构件中的所有文本,请使用 。e
e.select_range(0, tk.END)
.select_to(
index
)
选择从位置到位置的所有文本,但不包括字符 给定索引。tk.ANCHOR
.xview(
index
)
与 相同。此方法是 在将小部件链接到 水平滚动条。请参见第 10.1 节 “滚动条目小部件”。.xview()
Entry
.xview_moveto(
f
)
在条目中定位文本,以便字符 at 位置 ,相对于整个文本,位于 窗口的左边缘。参数必须 在 [0,1] 范围内,其中 0 表示 文本和 1 右端。f
f
.xview_scroll(
number
, what
)
用于水平滚动条目。论点 必须为 ,才能滚动 字符宽度,或 ,以滚动 按块表示条目小部件的大小。这是 正向向左向右滚动,正向滚动 从右到左。例如,对于一个条目小部件,会将文本移动一个 “页面”向右移动,并将文本移动 左边四个字符。what
tk.UNITS
tk.PAGES
number
e
e.xview_scroll(-1, tk.PAGES)
e.xview_scroll(4, tk.UNITS)