[python-brasil] Botões Minimizar e Maximizar e Fechar

2,354 views
Skip to first unread message

Daniel Montezano

unread,
Jan 5, 2009, 2:12:40 PM1/5/09
to python...@yahoogrupos.com.br
Olá a todos!

Participo 'passivamente' do grupo já há alguns meses, e dou os
parabéns a todos os participantes por nos proporcionarem tantas
discussões interessantes.

Meu nome é Daniel e sou um pythonista hobbista. :)

Estou com uma dúvida difícil de resolver, e se alguém puder me indicar
um local mais específico para procurar respostas eu agradeço.

A pergunta é:
Como posso ter acesso aos botões de maximizar, minimizar e fechar que
ficam no canto superior direito das janelas do Tkinter? Queria poder
habilitá-los, desabilitá-los, sumí-los, etc...

Abraço a todos,

Daniel.


------------------------------------

,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia: |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar |
| E se você é usuário do BOL lembre-se de cadastrar o |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/

<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html


Guilherme Polo

unread,
Jan 5, 2009, 3:31:51 PM1/5/09
to python...@yahoogrupos.com.br
2009/1/5 Daniel Montezano <danielm...@yahoo.com.br>:

> Olá a todos!
>
> Participo 'passivamente' do grupo já há alguns meses, e dou os
> parabéns a todos os participantes por nos proporcionarem tantas
> discussões interessantes.
>
> Meu nome é Daniel e sou um pythonista hobbista. :)
>
> Estou com uma dúvida difícil de resolver, e se alguém puder me indicar
> um local mais específico para procurar respostas eu agradeço.
>
> A pergunta é:
> Como posso ter acesso aos botões de maximizar, minimizar e fechar que
> ficam no canto superior direito das janelas do Tkinter? Queria poder
> habilitá-los, desabilitá-los, sumí-los, etc...
>

Em geral você na verdade não quer fazer isso. É dificil pensar em
motivos bons pra isso, e geralmente quando tem você quer desabilitar
tudo na verdade, e ai voce usa o wm_overrideredirect num widget
toplevel.

Bem, o botão de maximizar é o mais simples de se
habilitar/desabilitar/sumir: wm_resizable(0, 0) mas você também não
vai poder redimensionar a janela manualmente a não ser que você tenha
um widget ttk.Sizegrip na sua janela.

Para controlar o botão fechar, você altera o comportamento dele usando
o wm_protocol com o protocolo "WM_DELETE_WINDOW".

O de minizar é relativemente simples de controlar também, quando você
minimiza uma janela, ela recebe um evento -- "Unmap". Então você pode
adicionar um binding pra esse evento e fazer alguma coisa que você
estiver imaginando.

> Abraço a todos,
>
> Daniel.
>


--
-- Guilherme H. Polo Goncalves

Guilherme Polo

unread,
Jan 6, 2009, 7:08:54 AM1/6/09
to python...@yahoogrupos.com.br
2009/1/5 Leonardo Santagada <sant...@gmail.com>:

>
> On Jan 5, 2009, at 6:31 PM, Guilherme Polo wrote:
>
>> 2009/1/5 Daniel Montezano <danielm...@yahoo.com.br>:
>>> Olá a todos!
>>>
>>> Participo 'passivamente' do grupo já há alguns meses, e dou os
>>> parabéns a todos os participantes por nos proporcionarem tantas
>>> discussões interessantes.
>>>
>>> Meu nome é Daniel e sou um pythonista hobbista. :)
>>>
>>> Estou com uma dúvida difícil de resolver, e se alguém puder me
>>> indicar
>>> um local mais específico para procurar respostas eu agradeço.
>>>
>>> A pergunta é:
>>> Como posso ter acesso aos botões de maximizar, minimizar e fechar que
>>> ficam no canto superior direito das janelas do Tkinter? Queria poder
>>> habilitá-los, desabilitá-los, sumí-los, etc...
>>>
>>
>> Em geral você na verdade não quer fazer isso. É dificil pensar em
>> motivos bons pra isso, e geralmente quando tem você quer desabilitar
>> tudo na verdade, e ai voce usa o wm_overrideredirect num widget
>> toplevel.
>
> Acho que o q o guilherme queria ter terminado de dizer é q geralmente
> tu quer usar tipos de janelas diferentes,
> q em si não são maximizaveis

Nas duas primeiras linhas do paragráfo seguinte falava sobre esse botão.

> ou qualquer uma das combinações q tu deseja (como tool windows). Agora
> eu nem sei se TK tem suporte a isso, mas tanto o windows/gtk/qt/cocoa
> tem essa distinção, então vou chutar que deve ter :D
>

Não entendi porque você misturou o Windows com 3 toolkits, e também
não é tanto uma questão de o Tk ter suporte a isso já que não é ele
que cria e também não tem controle total sobre as decorações da
janela. Pode até parecer que alguns toolkits dão suporte completo a
isso, mas na verdade se você tentar usar o set_decorations numa
gtk.gdk.Window, por exemplo, você vai acabar percebendo que não da pra
fazer todas as combinações que você quiser.

No Windows você pode usar a opção -toolwindow (se quiser uma
toolwindow) com o wm_attributes, nas outras plataformas você tem a
opção de usar os outros comandos wm_* pra tentar fazer o que se quer.
Se o carbon tem suporte direto a toolwindows então seria questão de
criar um feature request la no sourceforge p/ tk para adicionar essa
opção as opções do comando wm attributes. No Linux eu sei que seria
possivel ter um -toolwindow, já que você pode passar um
_NET_WM_WINDOW_TYPE_UTILITY pro XChangeProperty mas o Tk não suporta
por alguma razão.

> --
> Leonardo Santagada
> santagada at gmail.com

Daniel Montezano

unread,
Jan 6, 2009, 7:38:40 AM1/6/09
to python...@yahoogrupos.com.br
--- Em python...@yahoogrupos.com.br, "Guilherme Polo" <ggpolo@...>
escreveu
>
Obrigado a todos amigos de plantão. Várias dicas e explicações de valor.

Quanto a usabilidade da informação, acredito que talvez eu não queira
mesmo fazer isso (futricar com os botões da janela) em uma aplicação,
mas 'knowledge is power', como dizem, e eu estava com vontade de saber
como fazer. O aplicativo é apenas um relógio do tipo 'always on top'
que eu queria ver como ficava sem os botões. Puro diletantismo. :D

Abraço,

Daniel.

> 2009/1/5 Leonardo Santagada <santagada@...>:


> >
> > On Jan 5, 2009, at 6:31 PM, Guilherme Polo wrote:
> >

> >> 2009/1/5 Daniel Montezano <danielmontezano@...>:

Leonardo Santagada

unread,
Jan 5, 2009, 6:00:24 PM1/5/09
to python...@yahoogrupos.com.br

On Jan 5, 2009, at 6:31 PM, Guilherme Polo wrote:

> 2009/1/5 Daniel Montezano <danielm...@yahoo.com.br>:
>> Olá a todos!
>>
>> Participo 'passivamente' do grupo já há alguns meses, e dou os
>> parabéns a todos os participantes por nos proporcionarem tantas
>> discussões interessantes.
>>
>> Meu nome é Daniel e sou um pythonista hobbista. :)
>>
>> Estou com uma dúvida difícil de resolver, e se alguém puder me
>> indicar
>> um local mais específico para procurar respostas eu agradeço.
>>
>> A pergunta é:
>> Como posso ter acesso aos botões de maximizar, minimizar e fechar que
>> ficam no canto superior direito das janelas do Tkinter? Queria poder
>> habilitá-los, desabilitá-los, sumí-los, etc...
>>
>
> Em geral você na verdade não quer fazer isso. É dificil pensar em
> motivos bons pra isso, e geralmente quando tem você quer desabilitar
> tudo na verdade, e ai voce usa o wm_overrideredirect num widget
> toplevel.

Acho que o q o guilherme queria ter terminado de dizer é q geralmente
tu quer usar tipos de janelas diferentes, q em si não são maximizaveis

ou qualquer uma das combinações q tu deseja (como tool windows). Agora
eu nem sei se TK tem suporte a isso, mas tanto o windows/gtk/qt/cocoa
tem essa distinção, então vou chutar que deve ter :D

--
Leonardo Santagada
santagada at gmail.com

Paulo altforBUL

unread,
Nov 30, 2017, 9:38:51 AM11/30/17
to Python Brasil


             root.overrideredirect(True)
Reply all
Reply to author
Forward
0 new messages