Como posso impedir do usuário de apertar o botão varias vezes seguidas em uma janela em Python?
Ex: botão Iniciar e botão Pausar
O botão iniciar só seria habilitado novamente se clicar no botão pausar.
Como posso impedir do usuário de apertar o botão varias vezes seguidas em uma janela em Python?
Ex: botão Iniciar e botão Pausar
O botão iniciar só seria habilitado novamente se clicar no botão pausar.
Olha não sou bom em programação pois estou iniciando mas oque eu faria seria uma verificação. Vamos á uma breve descrição de como funcionaria.
2 variaveis de valor booleano que define o valor do botão e se uma variavel tem valor True então a outra é False ou seja se o usuario apertou o botão play então a variavel recebe o valor True e a outra False se ele apertar denovo a a variavel for True ele não autoriza.
vou pegar 2 exemplos aqui pra você (Aviso: Foi gerado pelo gemini com base nas informações) Uma com GUI e outra no CLI.
GUI:
import tkinter as tk
def iniciar():
global is_playing, is_paused
if not is_playing:
is_playing = True
is_paused = False
btn_iniciar.config(state=tk.DISABLED)
btn_pausar.config(state=tk.NORMAL)
# Aqui você colocaria o código para iniciar a ação
def pausar():
global is_playing, is_paused
if is_playing:
is_playing = False
is_paused = True
btn_pausar.config(state=tk.DISABLED)
btn_iniciar.config(state=tk.NORMAL)
# Aqui você colocaria o código para pausar a ação
# Inicialização
is_playing = False
is_paused = True
# Criando a janela
janela = tk.Tk()
janela.title("Exemplo de Bloqueio de Botões")
# Criando os botões
btn_iniciar = tk.Button(janela, text="Iniciar", command=iniciar)
btn_iniciar.pack()
btn_pausar = tk.Button(janela, text="Pausar", command=pausar, state=tk.DISABLED)
btn_pausar.pack()
janela.mainloop()
CLI:
is_playing = False
while True:
comando = input("Digite 'iniciar' ou 'pausar': ")
if comando.lower() == "iniciar" and not is_playing:
print("Iniciando...")
is_playing = True
elif comando.lower() == "pausar" and is_playing:
print("Pausando...")
is_playing = False
else:
print("Comando inválido ou ação não permitida.")
Esse código foi gerado por IA?
Neste modo simples ate funciona agora quando leva isso para outro programa tem que clicar varias vezes no botão pausar.
Exemplo:
Resultado:
Sim. Foi gerado pelo Gemini, eu tava na pressa que eu ia sair
ChatGPT também gerou algo igual ao Gemini.
Só não resolveu o problema do botão pausar.
Resposta:
É possível que o programa não esteja funcionando corretamente ao alternar entre iniciar, pausar e reiniciar devido à forma como os estados estão sendo manipulados. Se o botão de “Pausar” for clicado enquanto o cronômetro ainda está sendo executado, a variável rodar é alterada, mas o contador pode não parar corretamente.
label_tempo.after(1000, iniciar)
Depende do toolkit, em PySide:
def on_button_clicked():
sender = app.sender().setDisabled(True)
app = QApplication([])
#... desenha o botão e afins