Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Tharis

Bloquear Botão

Recommended Posts

Tharis

Mais uma vez venho-vos pedir ajuda, mas, só assim é que vou aprender!

Alguém me sabe dizer como é que a determinada altura, se bloqueia um botão em Tkinter.

Quando digo bloquear, quer dizer que ele está e aparece mas não é possível clicar nele!

Cumps

tharis20

Share this post


Link to post
Share on other sites
djthyrax

Na função que ele executa no click, fazes um return caso a condição se verifique.

Exemplo:

if modo == "desactivado":
    return


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
Tharis

from Tkinter import *

modo = "activo"

class MyApp:
    def __init__(self, parent):
        self.myParent = parent ### (7) lembra seu 

mestre, a raiz
        self.myContainer1 = Frame(parent)
        self.myContainer1.pack()

        self.button1 = Button(self.myContainer1)
        self.button1.configure(text="OK", background= 

"green")
        self.button1.pack(side=LEFT)
        self.button1.bind("<Button-1>", 

self.button1Click) ### (1)

        self.button2 = Button(self.myContainer1)
        self.button2.configure(text="Cancel", 

background="red")
        self.button2.pack(side=RIGHT)
        self.button2.bind("<Button-1>", 

self.button2Click) ### (2)
        
    def button1Click(self, event): ### (3)
        modo = "desactivado"

        if modo == "desactivado":
            return
            
        else:
            modo = "activo"
            
    def button2Click(self, event): ### (5)
        self.myParent.destroy() ### (6)
    
root = Tk()
myapp = MyApp(root)
root.mainloop()

Fiz assim e não resultou. :P

HELP!

Share this post


Link to post
Share on other sites
djthyrax

Fizeste isso mal...

from Tkinter import *

modo = "activo"

class MyApp:
    def __init__(self, parent):
        self.myParent = parent ### (7) lembra seu mestre, a raiz
        self.myContainer1 = Frame(parent)
        self.myContainer1.pack()

        self.button1 = Button(self.myContainer1)
        self.button1.configure(text="OK", background= "green")
        self.button1.pack(side=LEFT)
        self.button1.bind("<Button-1>", self.button1Click) ### (1)

        self.button2 = Button(self.myContainer1)
        self.button2.configure(text="Cancel", background="red")
        self.button2.pack(side=RIGHT)
        self.button2.bind("<Button-1>", self.button2Click) ### (2)
        
    def button1Click(self, event): ### (3)
        global modo
        if modo == "desactivado":
            return            
        else:
            print "alterar esta linha pelo que queres fazer"
            modo = "desactivado"
            
    def button2Click(self, event): ### (5)
        self.myParent.destroy() ### (6)
    
root = Tk()
myapp = MyApp(root)
root.mainloop()

Something like that. :P


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
Kratos

Hummm  🤔,

acho que não foi isso que quer saber...

Pelo que pude entender, quer quer isso aqui:

# -*- coding: iso-8859-1 -*-
from Tkinter import *

class Display(Frame):
def __init__(self, master=None):
	Frame.__init__(self, master)
	self.grid()

	self.button1 = Button()
	self.button1.configure(width=20, text="Desativado", activebackground="red", borderwidth="5", command=lambda:self.function2(self), state=DISABLED)
	self.button1.grid(column=0,row=0)

	self.button2 = Button()
	self.button2.configure(width=20, text="Ativado", activebackground="blue", borderwidth="5", command=lambda:self.function1(self), state=NORMAL)
	self.button2.grid(column=1,row=0)

def function1(self, event):
	self.button1.configure(width=20, text="Ativado", state=NORMAL)
	self.button2.configure(width=20, text="Desativado", state=DISABLED)

def function2(self, event):
	self.button1.configure(width=20, text="Desativado", state=DISABLED)
	self.button2.configure(width=20, text="Ativado", state=NORMAL)


root = Tk()
Display(root)
root.title(" Botão - Ativado/Desativado")
root.resizable(height=FALSE,width=FALSE) # não deixa maximizar e nem alterar o frame
root.mainloop()

Correto ?  :D


"Vejo sempre além, pois me apóio em ombro de Gigantes"

Share this post


Link to post
Share on other sites
Tharis

Era mesmo isso pá! Mas mesmo assim, agr só serve para enriquecer o meu saber, pq aplicação prática, para já, não tem!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.