[Serie Tkinter 15/05] Widgets (etiquetas de marcos y listas)

Los marcos son básicamente contenedores para otros widgets.

  • La ventana raíz de una aplicación es básicamente un marco.

  •  Cada marco tiene su propio diseño de cuadrícula, por lo que los marcos cuadriculados para los widgets en cada marco funcionan de forma independiente.

  • Los widgets del marco son los que hacen que su aplicación sea modular. Puede enmarcar un grupo de widgets relacionados colocándolos en un widget compuesto. Aún mejor, puedes declarar una nueva clase para heredar, agregando tu propia interfaz. Este es un widget que oculta del mundo exterior un grupo de detalles de interacción relacionados.Frame

Crear un nuevo miembro de marco en la ventana raíz o llamadas de marco:parent

   w = Frame(parent, option, ...)

El constructor devuelve el nuevo widget. opciones:Frame

Tabla 19. 框架Opciones de componentes

bgobackground El color de fondo del marco. Consulte la Sección 5.3, “Colores”.
bdoborderwidth El ancho del borde del marco. El valor predeterminado es 0 (sin borde). Consulte la Sección 5.1, “Dimensiones” para conocer los valores permitidos.
cursor Control de cursor para usar cuando el mouse está dentro del marco; consulte la Sección 5.8, “Cursores”.
height Nuevo marco de tamaño vertical  . Esto se ignora a menos que también invoque el marco; consulte la Sección 4.2, “Otros métodos de gestión de red”..grid_propagate(0)
highlightbackground El color de enfoque  se resalta cuando el marco no tiene enfoque. Consulte la Sección 53, “Enfoque: Enrutamiento de la entrada del teclado”.
highlightcolor El color que se muestra en el enfoque se resalta cuando el marco tiene enfoque .
highlightthickness El grosor del foco resalta.
padx Normalmente, una A se ajusta perfectamente a su contenido. Agrega espacio dentro del marco en píxeles horizontales, configurando .FrameNpadx=N
pady Se utiliza para agregar espacio vertical dentro del marco. véase más arriba.padx
relief El relieve predeterminado para un marco es , lo que significa que el marco se combinará con su entorno. Para colocar un borde alrededor del marco, configúrelo en un valor positivo y establezca su relieve en uno de los tipos de relieve estándar; consulte la Sección 5.6, “Estilos de relieve”.tk.FLATborderwidth
takefocus Normalmente, la entrada no accede al foco del widget de marco (consulte la Sección 53, “Enfoque: enrutamiento de la entrada del teclado”  de este tema para obtener una descripción general). Sin embargo, puede configurar si desea que el marco reciba entrada del teclado. Para manejar este tipo de entrada, necesita crear enlaces para eventos de teclado; consulte la Sección 54, “Eventos” y enlaces para obtener más información sobre eventos.takefocus=1
width El tamaño horizontal del nuevo marco. Consulte la Sección 5.1 “Dimensiones”. Este valor se ignora a menos que también invoque el marco; consulte la Sección 4.2, “Otros métodos de administración de red”..grid_propagate(0)

12. AparatosLabel

Los widgets de etiquetas pueden tener el mismo estilo, mapa de bits o imagen. Cree un widget de llamada en la ventana o marco raíz:parent

    w = tk.Label(parent, option, ...)

El constructor devuelve el nuevo widget. Las opciones incluyen:Label

Tabla 20. 标签Opciones de widgets

activebackground El color de fondo que se mostrará cuando se pasa el cursor sobre el widget.
activeforeground El color de primer plano se muestra cuando el mouse está sobre el widget.
anchor Esta opción controla la posición del texto si el widget tiene más espacio del que necesita el texto. El valor predeterminado es que centra el texto en el espacio disponible. Para otros valores, consulte la Sección 5.5, “Puntos de anclaje”. Por ejemplo, si se usa, el texto se colocará en la esquina superior izquierda del espacio disponible.anchor=tk.CENTERanchor=tk.NW
bgobackground El color de fondo del área de la etiqueta. Consulte la Sección 5.3, “Colores”.
bitmap Al establecer esta opción en un valor de mapa de bits o etiqueta de objeto de imagen, se mostrará el gráfico. Consulte la Sección 5.7 “Mapas de bits” y la Sección 5.9 “ Imágenes”.
bdoborderwidth El ancho del borde alrededor de la etiqueta; consulte la Sección 5.1, “Tamaños”. El valor predeterminado es <> píxeles.
compound Si desea que este widget muestre texto y gráficos (mapas de bits o imágenes), la opción especifica la orientación relativa de los gráficos con respecto al texto. El valor puede ser cualquiera de , o . Por ejemplo, si se especifica, los gráficos se mostrarán debajo del texto.Labelcompoundtk.LEFTtk.RIGHTtk.CENTERtk.BOTTOMtk.TOPcompound=BOTTOM
cursor La etiqueta del cursor que aparece cuando el mouse pasa sobre esta ubicación. Consulte la Sección 5.8 “Cursores”.
disabledforeground El color de primer plano que se mostrará cuando el widget esté .statetk.DISABLED
font Si desea mostrar texto en esta etiqueta (use la opción o, que especifica en qué fuente se mostrará el texto. Consulte la Sección 5.4, “Fuentes de tipo”.texttextvariablefont
fgoforeground Si aquí se van a mostrar etiquetas de texto o mapa de bits, esta opción especifica el color del texto. Si se va a mostrar un mapa de bits, los colores son los siguientes. Aparecerá en la posición de 1 bit del mapa de bits. Consulte la Sección 5.3, “Colores”.
height La altura de la etiqueta en filas (¡no en píxeles! Si esta opción no está configurada, la etiqueta tendrá un tamaño que se ajuste a su contenido.
highlightbackground Color enfocado para resaltar  cuando el widget no tiene foco .
highlightcolor Color enfocado resaltado  cuando el widget tiene foco .
highlightthickness El grosor del foco resalta.
image Para mostrar una imagen estática en un widget de etiqueta, configure esta opción del objeto de imagen. Consulte la Sección 5.9 “Imágenes”.
justify Especifica cómo se alinean varias líneas de texto entre sí: izquierda, centro (valor predeterminado) o derecha.tk.LEFTtk.CENTERtk.RIGHT
padx Se agregaron espacios adicionales a la izquierda y derecha del texto en el widget. El valor predeterminado es 1.
pady Se agregó un widget de espacio adicional encima y debajo del texto. El valor predeterminado es 1.
relief 指定装饰性边框的外观 标签周围。默认值为 ;有关其他值,请参见第 5.6 节 “浮雕样式”。tk.FLAT
state 默认情况下,小部件位于 状态。设置此选项 以使其无响应 到鼠标事件。状态将为鼠标悬停在小部件上的时间。Entrytk.NORMALtk.DISABLEDtk.ACTIVE
takefocus 通常,焦点不会在小部件之间循环;请参见第 53 节 “焦点:路由键盘输入”。如果您希望此小部件 由焦点访问,设置.Labeltakefocus=1
text 在标签中显示一行或多行文本 小组件,将此选项设置为包含 发短信。内部换行符 () 将 强制换行。'\n'
textvariable 将标签构件中显示的文本从属到 类的控制变量 , 将此选项设置为该变量。请参见第 52 节 “控制变量:小部件背后的值”。StringVar
underline 您可以显示下划线 () 在第 n个字母下方 文本,从 0 开始计数,通过设置此选项 到 n。默认值为 ,表示否 强调。_underline=-1
width 标签的宽度(以字符为单位)(不是像素!如果 未设置此选项,标签的大小将调整为 适合其内容。
wraplength 您可以限制每行中的字符数 通过将此选项设置为所需的数字。这 默认值 0 表示线条将被断开 仅在换行符处。

13. 小部件LabelFrame

该小部件与“框架”小部件一样,是一个 空间容器 - 可以 包含其他小部件。但是,与小部件不同,小部件 允许您将标签显示为周围边框的一部分 该地区。LabelFrameFrameLabelFrame

下面是一个小部件的示例 包含两个小部件。请注意, 标签“重要控件”中断了 边境。此小部件说明了默认的浮雕(请参见第 5.6 节 “浮雕样式”)和 默认标签锚点,其 将标签放置在顶部的左侧 框架。LabelFrameButtonGROOVE'nw'

在 根窗口或框架 :LabelFrameparent

    w = tk.LabelFrame(parent, option, ...)

此构造函数返回新小部件。选项:LabelFrame

表 21.标签框架构件选项

bgbackground 要在内部显示的背景色 控件;请参见第 5.3 节 “颜色”。
bdborderwidth 围绕 的周长绘制的边框宽度 小部件;请参见第 5.1 节 “尺寸”。这 默认值为两个像素。
cursor 选择鼠标 在小部件上;请参见第 5.8 节 “游标”。
fgforeground 要使用的颜色 作为标签文本。
height 新框架的垂直尺寸。这将是 忽略,除非您也调用框架;请参见第 4.2 节 “其他网格管理方法”。.grid_propagate(0)
highlightbackground 焦点的颜色 当小组件没有焦点时突出显示。
highlightcolor 颜色 当小组件具有焦点时,焦点突出显示。
highlightthickness 焦点突出显示的厚度。
labelanchor

使用此选项可指定 小组件边框上的标注。默认 位置为 ,它放置 上边框左端的标签。对于 九个可能的标签位置,参考这个 图:'nw'

labelwidget 您可以使用任何小部件代替文本标签 通过传递该小部件作为值来传递标签 此选项。如果同时提供 和 选项,则会忽略该选项。labelwidgettexttext
padx 使用此选项可在内部添加其他填充 微件框架的左侧和右侧。 该值以像素为单位。
pady 使用此选项可在内部添加其他填充 小部件框架的顶部和底部。这 值以像素为单位。
relief 此选项控制边框的外观 在小部件的外部周围。默认 风格是 ;对于其他值, 请参见第 5.6 节 “浮雕样式”。tk.GROOVE
takefocus 通常,小部件不会获得焦点;供应 要使此选项的值 焦点遍历序列的小组件部分。 有关更多信息,请参见第 53 节 “焦点:路由键盘输入”。True
text 标签的文本。
width 新框架的水平尺寸。这将是 忽略,除非您也调用框架;请参见第 4.2 节 “其他网格管理方法”。.grid_propagate(0)

标签小部件没有特殊方法,除了 常见的(参见第 26 节 “通用小部件方法”)。

14. 小部件Listbox

14. 列表框小部件 (anzeljg.github.io)

列表框小部件的用途是显示一组 文本行。通常,它们旨在允许 用户从列表中选择一个或多个项目。所有 文本行使用相同的字体。如果你需要什么 更像是一个文本编辑器,请参见第 24 节 “文本小部件”。

在根窗口中创建新的列表框小组件,或 框架:parent

    w = tk.Listbox(parent, option, ...)

此构造函数返回新小部件。选项:Listbox

表 22.列表框小组件选项

activestyle

此选项指定 活动线。它可能具有以下任何值:

'underline'

活动线带有下划线。这是 默认选项。

'dotbox'

活动线括在虚线中 四面线。

'none'

活动线没有特殊 外观。

bgbackground 列表框中的背景色。
bdborderwidth 列表框周围的边框宽度。 默认值为 5 像素。有关可能的值,请参见第 1.<> 节 “维度”。
cursor 鼠标悬停在 列表框。请参见第 5.8 节 “游标”。
disabledforeground 文本的颜色 在列表框中,当其为 .statetk.DISABLED
exportselection 默认情况下,用户可以选择带有 鼠标,所选文本将导出到 剪贴板。要禁用此行为,请使用 。exportselection=0
font 用于列表框中文本的字体。请参见第 5.4 节 “键入字体”。
fgforeground 用于列表框中文本的颜色。请参见第 5.3 节 “颜色”。
height 数(不是像素! 显示在列表框中。默认值为 10。
highlightbackground 当小部件执行时,焦点的颜色会突出显示 没有焦点。请参见第 53 节 “焦点:路由键盘输入”。
highlightcolor 小部件时焦点突出显示中显示的颜色 有重点
highlightthickness 焦点突出显示的厚度。
listvariable

连接到的 A 列表框中值的完整列表(请参见第 52 节 “控制变量:小部件后面的值”。StringVar

如果调用的方法 的,你会得到 返回窗体的字符串,其中每个字符串都是列表框的一行的内容。.get()listvariable"('v0', 'v1', ...)"vi

更改列表框中的整行集 立即调用 ,其中 是包含 行值之间有空格。.set(s)listvariables

例如,如果 是与列表框的选项关联的,则此调用 将列表框设置为包含三行:listConStringVarlistvariable

 listCon.set('ant bee cicada')

此调用将返回字符串:"('ant', 'bee', 'cicada')"

listCon.get()

relief 选择三维边框底纹效果。 缺省值为 。对于其他 值,请参见第 5.6 节 “浮雕样式”。tk.SUNKEN
selectbackground 用于显示所选文本的背景
selectborderwidth 要在选定边框周围使用的边框宽度 发短信。默认值为所选项目为 以纯色块显示;如果增加 ,则条目为 移得更远,所选条目将显示浮雕(请参见第 5.6 节 “浮雕样式”)。selectbackgroundselectborderwidthtk.RAISED
selectforeground 用于显示所选文本的前景色。
selectmode 确定可以选择多少项以及如何选择 鼠标拖动会影响选择:
  • tk.BROWSE:通常,您只能 从列表框中选择一行。如果你 单击某个项目,然后拖动到其他项目 行,选择将遵循 鼠。这是默认值。

  • tk.SINGLE:您只能选择 一行,你不能拖动 鼠标 - 单击按钮 1 的任意位置, 该行处于选中状态。

  • tk.MULTIPLE:您可以选择任何 一次行数。点击任何 切换是否选择线条。

  • tk.EXTENDED:您可以选择任何 通过单击 在第一行并拖动到最后一行 线。

state 默认情况下,列表框处于该状态。使列表框对鼠标无响应 事件中,将此选项设置为 。tk.NORMALtk.DISABLED
takefocus 通常,焦点将通过列表框跳动 部件。将此选项设置为 0 以获取微件 不在序列中。请参见第 53 节 “焦点:路由键盘输入”。
width 小部件的宽度(以字符为单位)(不是像素!这 宽度基于平均字符,因此一些 按比例字体表示的此长度的字符串可以 不合适。默认值为 20。
xscrollcommand 如果要允许用户滚动列表框 水平方向,可以将列表框小部件链接到 水平滚动条。将此选项设置为滚动条的方法。请参见第 14.1 节 “滚动列表框小部件”以获取更多信息 可滚动的列表框小组件。.set
yscrollcommand 如果要允许用户滚动列表框 垂直方向,可以将列表框小部件链接到 垂直滚动条。将此选项设置为滚动条的方法。请参见第 14.1 节 “滚动列表框小部件”。.set

一组特殊的索引表单用于许多 列表框对象上的方法:

  • 如果将索引指定为整数,则它引用 列表框中具有该索引的行,从 0 开始计数。

  • 索引是指 列表框。tk.END

  • 索引是指选定的 线。如果列表框允许多项选择,则 指上次选择的行。tk.ACTIVE

  • 表单的索引字符串引用最接近的行 坐标 (,) 相对 到小部件的左上角。'@x,y'xy

对象上的方法包括:Listbox

.activate(index)

选择由给定 指定的行。index

.bbox(index)

返回由 as 指定的行的边界框 一个 4 元组,其中左上角 框的像素位于 和 和 是 以像素为单位。返回的值仅包括 文本占用的行的一部分。index(xoffsetyoffsetwidthheight)(xoffsetyoffset)widthheightwidth

如果参数指定的行不是 可见,此方法返回 .如果 它部分可见,返回的边界框 可能延伸到可见区域之外。indexNone

.curselection()

返回一个元组,其中包含 选定的一个或多个元素,从 0 开始计数。如果 未选择任何内容,返回一个空元组。

.delete(firstlast=None)

删除其索引在范围内的行 [, ],包含(与通常的 Python 习语相反,其中删除 在最后一个索引附近停止),从 0 开始计数。如果 省略第二个参数,单行 索引将被删除。firstlastfirst

.get(firstlast=None)

返回一个元组,其中包含以下行的文本 索引从 到 ,包括 。 如果省略第二个参数,则返回文本 最接近 的行。firstlastfirst

.index(i)

如果可能,定位 列表框,以便包含索引的行位于顶部 的小部件。i

.insert(index, *elements)

在列表框中插入一个或多个新行之前 由 指定的行。如果要添加,请使用第一个参数 列表框末尾的新行。indextk.END

.itemcget(indexoption)

检索特定选项值之一 列表框中的行。有关选项值,请参见下文。如果给定的选项有 未为给定行设置,返回值 将是一个空字符串。itemconfig

.itemconfig(indexoption=value, ...)

更改指定行的配置选项 由。 选项名称包括:index

background

给定行的背景

foreground

的文本颜色 给定的行。

selectbackground

给定行的背景 当它被选中时。

selectforeground

给定行的文本颜色 当它被选中时。

.nearest(y)

返回最接近 y 坐标 y 相对于 列表框小组件。

.scan_dragto(xy)

见下文。scan_mark

.scan_mark(xy)

使用此方法实现快速扫描 稳定滚动 - 列表框。要得到这个 功能,将某些鼠标按钮事件绑定到处理程序 与电流一起调用 鼠标位置。然后将事件绑定到使用当前鼠标调用的处理程序 位置,列表框将以一定速率滚动 与位置之间的距离成正比 记录者和电流 位置。scan_mark<Motion>scan_dragtoscan_mark

.see(index)

调整列表框的位置,使行 引用 是可见的。index

.selection_anchor(index)

将“选择锚点”放在 参数选择的行。一旦这个 锚点已经放置,你可以用 特殊索引形式 .indextk.ANCHOR

例如,对于名为 的列表框 , 此序列将选择第 3、4 和 5 行:lbox

    lbox.selection_anchor(3)
    lbox.selection_set(tk.ANCHOR,5)

.selection_clear(firstlast=None)

取消选择索引和 (包括 )之间的所有线条。 如果省略第二个参数,则取消选择该行 带索引 .firstlastfirst

.selection_includes(index)

如果给定的行是 选中后,则返回 1。index

.selection_set(firstlast=None)

选择索引和 (包括 )之间的所有线条。 如果省略第二个参数,则选择该行 带索引 .firstlastfirst

.size()

返回列表框中的行数。

.xview()

若要使列表框水平滚动,请设置关联的 此方法的水平滚动条。请参见第 14.1 节 “滚动列表框小部件”。command

.xview_moveto(fraction)

Desplaza el cuadro de lista de modo que el lado más a la izquierda tenga el ancho de la línea más larga fuera del cuadro de lista izquierdo. Las puntuaciones están en el rango [0, 1].fraction

.xview_scroll(numberwhat)

Desplaza el cuadro de lista horizontalmente. Para los argumentos, utilice para desplazar caracteres o para desplazar páginas, es decir, según el ancho del cuadro de lista. El argumento indica cuánto desplazarse; los valores negativos mueven el texto hacia la derecha en el cuadro de lista, los valores positivos hacia la izquierda.whattk.UNITStk.PAGESnumber

.yview()

Para hacer que el cuadro de lista se pueda desplazar verticalmente, establezca la opción de la barra de desplazamiento vertical asociada en el método. Consulte la Sección 14.1, “Widget de cuadro de lista de desplazamiento”.command

.yview_moveto(fraction)

Desplácese por el cuadro de lista de modo que el ancho de la línea más larga quede más allá del lado izquierdo del cuadro de lista. Las puntuaciones están en el rango [0, 1].fraction

.yview_scroll(numberwhat)

Desplaza el cuadro de lista verticalmente. Para los argumentos, utilice desplazamiento por fila o desplazamiento por página, es decir, por la altura del cuadro de lista. El argumento indica cuánto desplazarse; los valores negativos mueven el texto en el cuadro de lista hacia abajo y los valores positivos mueven el texto hacia arriba.whattk.UNITStk.PAGESnumber

14.1 Widget de desplazamientoListbox

Aquí hay un fragmento de código que ilustra la creación y vinculación de un cuadro de lista a barras de desplazamiento horizontales y verticales.

   self.yScroll = tk.Scrollbar(self, orient=tk.VERTICAL)
    self.yScroll.grid(row=0, column=1, sticky=tk.N+tk.S)

    self.xScroll = tk.Scrollbar(self, orient=tk.HORIZONTAL)
    self.xScroll.grid(row=1, column=0, sticky=tk.E+tk.W)

    self.listbox = tk.Listbox(self,
         xscrollcommand=self.xScroll.set,
         yscrollcommand=self.yScroll.set)
    self.listbox.grid(row=0, column=0, sticky=tk.N+tk.S+tk.E+tk.W)
    self.xScroll['command'] = self.listbox.xview
    self.yScroll['command'] = self.listbox.yview

 

Supongo que te gusta

Origin blog.csdn.net/gongdiwudu/article/details/132569351
Recomendado
Clasificación