import tkinter as tk
from functools import partial
class Botao( tk.Button ) :
def clique( self , saida, vezes) :
saida[ 'text' ] = 'Clicou {} !' .format ( vezes)
def contagem( self , saida) :
valor = 0
def retorna( ) :
nonlocal valor
valor += 1
self .clique ( saida, valor)
return retorna
class App( object ) :
def __init__ ( self ) :
self .root = tk.Tk ( )
self .fonte = ( 'Comic Sans MS' , 14 , 'bold' )
self .frame1 = tk.Frame ( self .root )
self .frame2 = tk.Frame ( self .root )
self .botao1 = Botao( self .frame1 , text = 'Clique Aqui !' , font = self .fonte )
self .saida1 = tk.Label ( self .frame1 , text = 'Ainda não clicou !' , fg = 'red' , font = self .fonte )
self .botao1 [ 'command' ] = self .botao1 .contagem ( self .saida1 )
self .saida1 .pack ( )
self .botao1 .pack ( )
self .botao2 = Botao( self .frame1 , text = 'Clique Aqui !' , font = self .fonte )
self .saida2 = tk.Label ( self .frame1 , text = 'Ainda não clicou !' , fg = 'red' , font = self .fonte )
self .botao2 [ 'command' ] = self .botao2 .contagem ( self .saida2 )
self .saida2 .pack ( )
self .botao2 .pack ( )
self .frame1 .pack ( )
app = App( )
aW1wb3J0IHRraW50ZXIgYXMgdGsKZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwKCgpjbGFzcyBCb3Rhbyh0ay5CdXR0b24pOgoKICAgIGRlZiBjbGlxdWUoc2VsZiwgc2FpZGEsIHZlemVzKToKICAgICAgICBzYWlkYVsndGV4dCddID0gJ0NsaWNvdSB7fSAhJy5mb3JtYXQodmV6ZXMpCgogICAgZGVmIGNvbnRhZ2VtKHNlbGYsIHNhaWRhKToKICAgICAgICB2YWxvciA9IDAKICAgICAgICBkZWYgcmV0b3JuYSgpOgogICAgICAgICAgICBub25sb2NhbCB2YWxvcgogICAgICAgICAgICB2YWxvciArPSAxCiAgICAgICAgICAgIHNlbGYuY2xpcXVlKHNhaWRhLCB2YWxvcikKICAgICAgICByZXR1cm4gcmV0b3JuYQogICAgCgpjbGFzcyBBcHAob2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgc2VsZi5yb290ID0gdGsuVGsoKQogICAgICAgIHNlbGYuZm9udGUgPSAoJ0NvbWljIFNhbnMgTVMnLCAxNCwgJ2JvbGQnKQogICAgICAgIHNlbGYuZnJhbWUxID0gdGsuRnJhbWUoc2VsZi5yb290KQogICAgICAgIHNlbGYuZnJhbWUyID0gdGsuRnJhbWUoc2VsZi5yb290KQogICAgICAgIHNlbGYuYm90YW8xID0gQm90YW8oc2VsZi5mcmFtZTEsIHRleHQgPSAnQ2xpcXVlIEFxdWkgIScsIGZvbnQgPSBzZWxmLmZvbnRlKQogICAgICAgIHNlbGYuc2FpZGExID0gdGsuTGFiZWwoc2VsZi5mcmFtZTEsIHRleHQgPSAnQWluZGEgbsOjbyBjbGljb3UgIScsIGZnID0gJ3JlZCcsIGZvbnQgPSBzZWxmLmZvbnRlKQogICAgICAgIHNlbGYuYm90YW8xWydjb21tYW5kJ10gPSBzZWxmLmJvdGFvMS5jb250YWdlbShzZWxmLnNhaWRhMSkKICAgICAgICBzZWxmLnNhaWRhMS5wYWNrKCkKICAgICAgICBzZWxmLmJvdGFvMS5wYWNrKCkKICAgICAgICBzZWxmLmJvdGFvMiA9IEJvdGFvKHNlbGYuZnJhbWUxLCB0ZXh0ID0gJ0NsaXF1ZSBBcXVpICEnLCBmb250ID0gc2VsZi5mb250ZSkKICAgICAgICBzZWxmLnNhaWRhMiA9IHRrLkxhYmVsKHNlbGYuZnJhbWUxLCB0ZXh0ID0gJ0FpbmRhIG7Do28gY2xpY291ICEnLCBmZyA9ICdyZWQnLCBmb250ID0gc2VsZi5mb250ZSkKICAgICAgICBzZWxmLmJvdGFvMlsnY29tbWFuZCddID0gc2VsZi5ib3RhbzIuY29udGFnZW0oc2VsZi5zYWlkYTIpCiAgICAgICAgc2VsZi5zYWlkYTIucGFjaygpCiAgICAgICAgc2VsZi5ib3RhbzIucGFjaygpCiAgICAgICAgc2VsZi5mcmFtZTEucGFjaygpCgphcHAgPSBBcHAoKQ==
stdout
stderr
Traceback (most recent call last):
File "./prog.py", line 38, in <module>
File "./prog.py", line 22, in __init__
File "/usr/lib/python3.5/tkinter/__init__.py", line 1880, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable