drag & drop
/* Variables de color para fácil modificación */ :root { --main-color: #01af9f; --secondary-color: GreenYellow; --bg-color-one: white; …
Enlace a la documentación de tkinter.
from tkinter import *
class Window():
def __init__(self):
self.root = Tk()
self.root.title("Aplicación de ventanas con tkinter")
self.root.geometry('400x100')
self.label = Label(self.root, text="Pantalla generada con tkinter", )
self.label.pack()
self.button_exit = Button(self.root, text = "Exit", command = exit)
self.button_exit.pack()
self.root.mainloop()
if __name__ == '__main__':
app = Window()
Este es el resultado:
Para crear un explorador de ficheros, hemos de importar el módulo filedialog de Tkinter. Este módulo le permite abrir una ventana de diálogo para buscar ficheros o directorios dentre de su sistema de archivos.
A continuación se muestra cómo implementar un botón que abre un cuadro de diálogo para seleccionar un directorio:
from tkinter import *
from tkinter import filedialog
class Window():
def browseDir(self):
# directorio guarda la ruta de la carpeta seleccionada:
directorio= filedialog.askdirectory()
# Traslada la ruta a la etiqueta:
self.labelDirOrigen.configure( text= directorio)
def __init__(self):
# Configuración de la ventana
self.root = Tk()
self.root.title("Filedialog with tkinter in Python")
self.root.geometry('1000x300')
# Etiquetas
self.label = Label(self.root, text="FILEDIALOG CON TKINTER", )
self.label.pack()
self.labelDirOrigen = Label(self.root, text="Carpeta origen:")
self.labelDirOrigen.pack()
# Botón que abre la ventana de Diálogo:
self.buttonFD = Button(self.root, text="Abrir carpeta...", command=self.browseDir)
self.buttonFD.pack()
self.button_exit = Button(self.root, text = "Exit", command = exit)
self.button_exit.pack()
self.root.mainloop()
if __name__ == '__main__':
app = Window()
Posicionar los controles dentro de una ventana con tkinter se puede hacer de tres formas distintas: pack(), place() y grid(). No utilices varios métodos en la misma aplicación.
place() posiciona los elementos de forma absoluta.
Código
from tkinter import *
class Window():
def __init__(self):
# Configuración de la ventana
self.root = Tk()
self.root.title("Posicionamiento con place()")
self.root.geometry('400x300')
# Etiquetas
self.label = Label(self.root, text="Cómo se posiciona con place()", )
self.label.place(x=20, y=20)
self.button_exit = Button(self.root, text = "Exit", command = exit)
self.button_exit.place(x=20, y=50, height=20, width=100)
self.root.mainloop()
if __name__ == '__main__':
app = Window()
x, y, width y height se pueden expresar en términos relativos respecto a la ventana padre. Si la ventana se redimensiona, los valores cambian.
Esto se hace con las propiedades relwidth, relheight, relx y rely. Aceptan valores entre 0 y 1.
Código
# La etiqueta tiene un ancho y alto de la mitad del ancho y alto de la ventana:
self.label.place(relwidth=0.5, relheight=0.5)
# Si la ventana tiene un tamaño de 300x200 el botón, al inicio, se encontrará en la posición (30,20). A medida que la ventana cambie, se actualiza la posición del botón.
self.button.place(relx=0.1, rely=0.1, relwidth=0.5, relheight=0.5)
/* Variables de color para fácil modificación */ :root { --main-color: #01af9f; --secondary-color: GreenYellow; --bg-color-one: white; …
select { background-color: lightgreen; } #tabla-caracteres { margin-top:1em; padding: 1em; background-color: whitesmoke; } .caracter { display: …