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.org/wp-content/uploads/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()


