Painel deslizante é um componente da interface gráfica que permite que o usuário redimensione componentes contidos normalmente dentro de dois painéis que podem ser posicionados na horizontal ou na vertical.
PanedWindow
O PanedWindow é um widget gerenciador de geometria, que pode conter um ou mais widgets filhos (“painéis”). Os widgets filhos pode ser redimensionados pelo usuário, ao mover linhas de separação (“sashes“) usando o mouse.
Exemplo:
Neste exemplo criamos um painel de rolagem divido na horizontal que contem dois componentes que podem ser redimensionados pelo usuário, respeitando o tamanho mínimo de cada componente.
Python
#!/usr/bin/env python # -*- coding: latin-1 -*- # Desenvolvimento Aberto # Panewindow.py # importa modulos from Tkinter import * from PIL import Image, ImageTk from ScrolledText import ScrolledText import urllib2 as urllib import cStringIO # Cria formulario formulario = Tk() formulario.title = "Desenvolvimento Aberto" # Declara variavel txt = "O balonismo e um esporte aeronautico praticado com um balao de ar quente.\n" + \ "Possui adeptos em todo o mundo. No Brasil, o esporte comecou a se popularizar\n" + \ "a partir dos anos 90.\n" + \ "O balão é considerado uma aeronave assim como aviao, helicopteros e outros.\n" + \ "Por esta razao o balao deve ter uma matricula (prefixo) registrado junto\n" + \ "a ANAC, seu piloto deve possuir uma licenca (breve) especifico para a pratica\n" + \ "do balonismo tambem emitido pela ANAC."; # Cria Url url = urllib.urlopen("https://desenvolvimentoaberto.files.wordpress.com/2014/04/balonismo.jpg") # Lê imagem da url figura = cStringIO.StringIO(url.read()) # carrega a imagem imagem = Image.open(figura) # joga a imagem para o componente foto = ImageTk.PhotoImage(imagem) painel = PanedWindow(orient=HORIZONTAL) painel.pack(fill=BOTH, expand=10) # Exibi a imagem pic = Label(painel, image = foto) # Cria caixa de texto texto = ScrolledText(painel, height =10, width = 40) texto.insert(END, txt) # Adiciona componentes no painel painel.add(pic) painel.add(texto) # Loop do tcl mainloop()