1
I am learning Python on my own and now I took it to learn GUI in Tkinter. If anyone can help me, I’m having trouble getting the program to display a greeting and then offer options on different buttons. By the way... I think I managed to do this, but the problem is that I wanted the program to wait for the user to interact and then just run the next line.
Let’s say for example that I create a file with the Window class (for the interface) and some functions (Window.py):
import time
from tkinter import *
# Aqui a função dos botões. Referenciei ela primeiro para não dar conflito. Quando tentei isso, quebrei esse código em mais de um programa e chamei as funções de lá, mas aqui vou fazer tudo em um arquivo só para não ficar confuso:
Escolha = ''
def Escolher(X):
Escolha = X
# Aqui o objeto 'Janela':
class Janela:
def __init__(self):
self.Janela = Tk()
self.Janela.title = 'Interaja'
self.Janela.minsize = (500, 300)
# Aqui uma label para imprimir as mensagens que quero passar para o usuário:
self.Texto = Label(self.Janela, text = '')
self.Texto.pack()
# Aqui uma série de botões:
self.B1 = Button(self.Janela, text = 'Opção 1', command = Escolher('1'))
self.B1.pack()
self.B2 = Button(self.Janela, text = 'Opção 2', command = Escolher('2'))
self.B2.pack()
self.B3 = Button(self.Janela, text = 'Opção 3', command = Escolher('3'))
self.B3.pack()
# Aqui crio uma instância do objeto Janela:
Exemplo = Janela()
# Aqui uma função para que determinadas mensagens sejam exibidas:
def Diga(X):
Exemplo.Texto.configure(text = X)
Exemplo.Texto.update()
time.sleep(3) # Ignorem. Deixei esse atraso pro usuário conseguir ler a tempo. Tenho um método mais eficiente pra isso, mas só pra simplificar deixei assim.
# Por fim, a parte principal do programa:
Diga('Sejam bem-vindos!')
Diga('Você quer escolher qual opção?')
EspereEscolha() # Aqui, queria que o programa esperasse a opção ser escolhida para só então imprimir a seguinte mensagem:
Diga('Você escolheu a opção {}'.format(Escolha))
Texte.mainloop()
Does anyone happen to know how to create this 'Espereescolha()', or if it already exists and I’m the one who is not able to do?
Grateful for the attention.