Capítulo 17 PanedWindow
PanedWindow (panel) admite la creación de una o más subventanas como un control de administración de diseño de ventana. Puede usar el mouse para arrastrar la línea divisoria para cambiar el tamaño de la subventana. PanedWindow es un nuevo control agregado después de Tk8.4 Similar al control Frame, proporciona un marco para los componentes. Sin embargo, el control del panel puede ajustar dinámicamente el tamaño de la ventana secundaria.
import tkinter as tk
from tkinter import ttk
root=tk.Tk()
root.geometry('320x240')
b1=tk.PanedWindow(showhandle=True,
sashrelief=tk.SUNKEN)
left=tk.Label(b1,text='左边窗口')
b1.add(left)
right=tk.Label(b1,text='右边窗口')
b1.add(right)
b1.pack(fill=tk.BOTH,expand=1)
root.mainloop()
Resultado:
17.1 Propiedades
Atributos | significado |
---|---|
fondo de pantalla |
establecer el color de fondo |
ancho de borde bd |
establecer el ancho del borde |
cursor | Especifica el estilo del mouse cuando el mouse se desplaza sobre PanedWindow |
almohadilla de la manija | Ajuste la posición del "mango" tal como orient=VERTICAL, la opción de manillar indica la distancia entre el manillar en la "línea divisoria" y el extremo izquierdo, si orient=HORIZONTAL, entonces la distancia es la distancia entre el manillar y el extremo superior. El valor predeterminado es 8 píxeles. |
tamaño del mango | Establezca el tamaño del "mango" (dado que el "mango" debe ser un cuadrado, es para establecer la longitud lateral del cuadrado) El valor predeterminado es 8 píxeles |
altura | Establecer la altura de PanedWindow Si se omite esta opción, la altura está determinada por el tamaño del componente secundario |
tamaño opaco | Esta opción define la operación para que el usuario ajuste el tamaño del panel. Si el valor de esta opción es True (predeterminado), el tamaño del panel cambia a medida que el usuario arrastra el mouse. Si el valor de esta opción es False, el tamaño del panel cambia cuando el usuario suelta el mouse. Solo se actualiza a la nueva ubicación cuando |
orientar | El modo de distribución del panel especificado puede ser HORIZONTAL (distribución horizontal) y VERTICAL (distribución vertical) |
alivio | Especifique el estilo del borde. El valor predeterminado es PLANO. Además, también puede configurar HUNDIDO, ELEVADO, RANURADO o CABALLETE. |
cursor de guillotina | Establecer el estilo del cursor al ajustar la línea divisoria |
almohadilla de guillotina | Establecer el espacio entre el divisor y el panel |
sashrelief | Establezca el estilo de la línea divisoria. El valor predeterminado es PLANO . También puede establecer SUNKEN, RAISED, GROOVED o RIDGE |
ancho de hoja | Establecer el ancho de la línea divisoria |
exhibidor | Establezca si mostrar el controlador del panel de ajuste. El valor predeterminado es Falso. |
ancho | Establece el ancho de PanedWindow. Si se omite esta opción, la altura está determinada por el tamaño del componente secundario. |
17.1.1 fondo (fondo) | |
Establezca el color de fondo. |
17.1.2 borderwidth(bd)
Establece el ancho del marco del control del panel.
import tkinter as tk
from tkinter import ttk
root=tk.Tk()
root.geometry('320x240')
b1=tk.PanedWindow(showhandle=True,
sashrelief=tk.SUNKEN,bg='blue',
width=240,border=30)
left=tk.Entry(b1,width=5)
b1.add(left)
right=tk.Entry(b1,width=5)
b1.add(right)
b1.pack()
root.mainloop()
Resultado:
17.1.3
La forma del cursor cuando el mouse pasa sobre el panel de control. Consulte la sección 3.3.6 para conocer la introducción específica del cursor.
import tkinter as tk
from tkinter import ttk
root=tk.Tk()
root.geometry('320x240')
b1=tk.PanedWindow(showhandle=True,
sashrelief=tk.SUNKEN,
width=240,cursor='spider')
left=tk.Entry(b1,width=5)
b1.add(left)
right=tk.Entry(b1,width=5)
b1.add(right)
b1.pack()
root.mainloop()
17.1.4 El handlepad
ajusta la posición del "handle"
. Por ejemplo, orient=VERTICAL, la opción handlepad indica la distancia entre el handle en la "línea divisoria" y el extremo izquierdo. Si orient=HORIZONTAL, la distancia es la distancia entre el mango y el extremo superior. La distancia predeterminada es de 8 píxeles.
import tkinter as tk
from tkinter import ttk
root=tk.Tk()
root.geometry('320x240')
b1=tk.PanedWindow(showhandle=True,
sashrelief=tk.SUNKEN,
width=240,handlepad=30)
left=tk.Text(b1,height=5,width=5)
b1.add(left)
right=tk.Text(b1,height=5,width=5)
b1.add(right)
b1.pack()
root.mainloop()
Resultado:
17.1.5 handlesize
define el tamaño del identificador. El tamaño predeterminado es de 8 píxeles.
import tkinter as tk
from tkinter import ttk
root=tk.Tk()
root.geometry('320x240')
b1=tk.PanedWindow(showhandle=True,
sashrelief=tk.SUNKEN,
width=240,handlepad=30,
handlesize=20)
left=tk.Text(b1,height=5,width=5)
b1.add(left)
right=tk.Text(b1,height=5,width=5)
b1.add(right)
b1.pack()
root.mainloop()
Resultado:
17.1.6 altura
define la altura del panel. Si esta opción no está definida, la altura del panel está determinada por el componente secundario más grande.
import tkinter as tk
from tkinter import ttk
root=tk.Tk()
root.geometry('320x240')
b1=tk.PanedWindow(showhandle=True,
sashrelief=tk.SUNKEN,
width=240,height=200)
left=tk.Text(b1,height=5,width=5)
b1.add(left)
right=tk.Text(b1,height=5,width=5)
b1.add(right)
b1.pack()
root.mainloop()
Resultado:
17.1.7 opaqueresize
establece el efecto de arrastre. Si opaqueresize=True, se admite el efecto de arrastre, es decir, el tamaño de los subcomponentes en el panel cambia con el cambio del divisor. Si opaqueresize=False, el tamaño del subcomponente solo cambiará cuando se suelte el botón del mouse, es decir, no habrá efecto de arrastre.
import tkinter as tk
from tkinter import ttk
root=tk.Tk()
root.geometry('320x240')
b1=tk.PanedWindow(showhandle=True,sashrelief=tk.SUNKEN,
width=240,opaqueresize=False)
left=tk.Text(b1,height=5,width=5)
b1.add(left)
right=tk.Text(b1,height=5,width=5)
b1.add(right)
b1.pack()
root.mainloop()
Resultado:
17.1.8 orient
define la dirección en la que se distribuyen los paneles. Hay HORIZONTAL (distribución horizontal) y VERTICAL (distribución vertical).
17.1.9 relieve
especifica el estilo del borde. Ver descripción en la Sección 3.3.5.
17.1.10 sashcursor
ajusta el estilo del cursor del separador.
import tkinter as tk
from tkinter import ttk
root=tk.Tk()
root.geometry('320x240')
b1=tk.PanedWindow(showhandle=True,
sashrelief=tk.SUNKEN,
width=240,sashcursor='spider')
left=tk.Text(b1,height=5,width=5)
b1.add(left)
right=tk.Text(b1,height=5,width=5)
b1.add(right)
b1.pack()
root.mainloop()
Resultado:
17.1.11 sashpad
establece el tamaño del espacio a ambos lados del divisor, que es la distancia al subcomponente. El valor predeterminado es 0.
import tkinter as tk
from tkinter import ttk
root=tk.Tk()
root.geometry('320x240')
b1=tk.PanedWindow(showhandle=True,sashrelief=tk.SUNKEN,
width=240,sashpad=20)
left=tk.Text(b1,height=5,width=5)
b1.add(left)
right=tk.Text(b1,height=5,width=5)
b1.add(right)
b1.pack()
root.mainloop()
Resultado:
17.1.12 sashrelief
establece el estilo 3D del divisor. Disponible en: PLANO, HUNDIDO, ELEVADO, RANURADO o CABALLETE. Si es FLAT, no se mostrará ninguna línea divisoria, porque es igual que el fondo.
17.1.13 sashwidth
Establece el ancho del separador.
import tkinter as tk
from tkinter import ttk
root=tk.Tk()
root.geometry('320x240')
b1=tk.PanedWindow(showhandle=True,sashrelief=tk.SUNKEN,
width=240,sashwidth=20)
left=tk.Text(b1,height=5,width=5)
b1.add(left)
right=tk.Text(b1,height=5,width=5)
b1.add(right)
b1.pack()
root.mainloop()
Resultado:
17.1.14 showhandle
Si mostrar el controlador de ajuste. Se muestra Showhandle=True, de lo contrario no se muestra.
17.1.15 ancho
define el ancho del control del marco de la ventana. Si no existe este parámetro, el ancho del control de panel se determina según el ancho del componente secundario.