2012/9/20 Elysangela <
elysange...@gmail.com>:
Oi Elysangela!
Deixa eu tentar te dar um help.
Começo com uma dica: como o Python tem várias
bibliotecas para criar aplicativos Desktop, quando você
for fazer uma pergunta, é melhor citar qual biblioteca
está usando (seja de desktop, ou qualquer outra
biblioteca do Python). Senão para o pessoal fica pouco
contexto, ai fica mais dificil alguém conseguir te ajudar.
Pela pergunta que voce está fazendo, eu entendi que você
está usando o Tkinter (mas nem sei se está usando
Python 2 ou Python 3). Mesmo o Tkinter sendo a única biblioteca
de desktop que é distribuida junto com Python, é melhr mencionar -
por que na verdade acontece que pouca gente, proporcionalmente,
desenvolve aplicações desktop - e quem faz as vezes prefere
usar gtk, wx widgets ou Qt.
Então - quanto a sua pergunta: eu mesmo nunca desenvolvi
uma app. grande em Tkinter -- costumo fazer coisas
corriqueiras. Mas tanto quanto eu saiba, Tkinter não
tem suporte a "abas" pronto - você tem que criar a sua.
E a forma mais direta de fazer isso é colocar uma sequencia de
botões, no alto da sua janela, que quando clicados, fazem a
aba que você quer tornar vizivel aparecer - executando
as chamadas de "grid" ou "pack" dela - e - faz as demais
abas desaparecerem, tambem fazendo uma chamada
explícita de "grid" ou "pack" para que as abas sejam
"desligadas".
Isso dito, o melhor é você colocar todos os controles de
uma dada aba, dentro de um objeto "Frame" (Tkinter.Frame) -
ai você só tem que se preocupar, para cada aba, em
tornar visível ou esconder esse Frame.
Exemplo:
http://pastebin.com/0xfY1SA3
# -*- coding: utf-8 -*-
import Tkinter
from Tkinter import Tk, Frame, Button, Text, Label
from functools import partial
TOTAL_TABS = 5
colors = "red yellow green blue white".split()
def main():
window = Tk()
frame_buttons = [Button(window, text="Frame %d" %i) for i in
range(TOTAL_TABS)]
frames = [Button(window, text="Frame %d" %i) for i in range(TOTAL_TABS)]
for i in range(TOTAL_TABS):
frame_buttons[i].grid(row=0, column=i)
frame_buttons[i]["command"] = partial(change_tab, frames, i)
label = Label(frames[i], text=u"Você está vendo o frame %d" % i)
label.grid(row=0, column=0)
text = Text(frames[i])
text.grid(row=1, column=0)
text["background"] = colors[i]
change_tab(frames,0)
Tkinter.mainloop()
def change_tab(frames, number):
for frame in frames:
frame.grid_forget()
frames[number].grid(column=0, columnspan=TOTAL_TABS, row=1)
if __name__ == "__main__":
main()
>
> --
> ------------------------------------
> Grupo Python-Brasil
>
http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
>
http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
>
python-brasi...@googlegroups.com