Tkinter应用程序无法运行 - 为什么?

时间:2011-07-04 16:08:21

标签: python menu tkinter

我在脑子里 - 朋友需要Tkinter应用程序的帮助,但我是一名经验丰富的C开发人员,我没有python的经验。我已经读过Tkinter手册,到目前为止:

from Tkinter import *
class Application(Frame):
    def __init__(self, master=None):
        frame = Frame(master)
        frame.pack()

        self.msg = Label(self, text="Bem-Vindo a Biblioteca!")
        self.msg.pack ()
        self.usuario = Button (self, text="Cadastro de Usuario", command=janelaUsuario)
        self.usuario.pack ()
        self.pack()
        self.livros = Button (self, text="Cadastro de Livros", command=janelalivro)
        self.livros.pack ()
        self.pack()
        self.emprestimo = Button (self, text="Emprestimos de Livros", command=janelaemprestimo)
        self.emprestimo.pack ()
        self.pack()
        self.usuarioscadastrados = Button (self, text="Usuarios Cadastrados", command=self.quit)
        self.usuarioscadastrados.pack ()
        self.pack()
        self.livroscadastrados = Button (self, text="Livros Cadastrados", command=self.quit)
        self.livroscadastrados.pack ()
        self.pack()

def janelaUsuario():
    menu=Menu()
    def popup(): menu.post(500, 500)
    janela= popup()
    nome = Label(text="Nome:")
    nome.pack()
    janela1=Entry()
    janela1.pack()
    CPF = Label(text="CPF:")
    CPF.pack()
    janela2=Entry()
    janela2.pack()
    endereco = Label(text="Endereco:")
    endereco.pack()
    janela3=Entry()
    janela3.pack()
    telefoneR = Label(text="Telefone Residencial:")
    telefoneR.pack()
    janela4=Entry()
    janela4.pack()
    telefoneC = Label(text="Telefone Celular:")
    telefoneC.pack()
    janela5=Entry()
    janela5.pack()
    data = Label(text="Data de Nascimento:")
    data.pack()
    janela6=Entry()
    janela6.pack()
    sexo = Label(text="Sexo:")
    sexo.pack()
    janela7=Entry()
    janela7.pack()
    email = Label(text="Email:")
    email.pack()
    janela8=Entry()
    janela8.pack()
    salvar= Button (text="Salvar")
    salvar.pack()
    menu.mainloop()

def janelalivro():
    menu=Menu()
    def popup(): menu.post(500, 500)
    janela= popup()
    nomelivro = Label(text="Nome do livro:")
    nomelivro.pack()
    janela1=Entry()
    janela1.pack()
    identificador = Label(text="Identificador do livro:")
    identificador.pack()
    janela2=Entry()
    janela2.pack()
    autor = Label(text="Autor:")
    autor.pack()
    janela3=Entry()
    janela3.pack()
    editora = Label(text="Editora:")
    editora.pack()
    janela4=Entry()
    janela4.pack()
    ano = Label(text="Ano de Publicacao:")
    ano.pack()
    janela5=Entry()
    janela5.pack()
    quantidade = Label(text="Numero de exemplares:")
    quantidade.pack()
    janela6=Entry()
    janela6.pack()
    #variavel se representa se o livro ta emprestado ou nao faltou !
    salvar= Button (text="Salvar")
    salvar.pack()
    menu.mainloop()

def janelaemprestimo():
    menu=Menu()
    def popup(): menu.post(500, 500)
    janela= popup()
    identificador = Label(text="Identificador do livro:")
    identificador.pack()
    janela1=Entry()
    janela1.pack()
    cpf = Label(text="CPF:")
    cpf.pack()
    janela2=Entry()
    janela2.pack()
    dataemprest = Label(text="Data de emprestimo:")
    dataemprest.pack()
    janela3=Entry()
    janela3.pack()
    datadevol = Label(text="Data de devolucao:")
    datadevol.pack()
    janela4=Entry()
    janela4.pack()
    salvar= Button (text="Salvar")
    salvar.pack()
    menu.mainloop()   
    app = Application(self)
    self.mainloop()

我希望从这个窗口看到一个带有5个按钮的窗口,它运行我定义的5个功能,但是当我没有运行时,为什么会这样?

1 个答案:

答案 0 :(得分:1)

你没有运行任何东西,只定义了函数和类。

尝试在最后添加一行app = Application(),让我知道这是怎么回事 - 我不知道Tkinter,但我确实知道python足够知道你没有做任何事情:P。


好的,我已经很好地了解了你的代码。试试这个:

def janelaemprestimo():
    tk = Tk()
    menu=Menu()
    def popup(): menu.post(500, 500)
    janela= popup()
    identificador = Label(text="Identificador do livro:")
    identificador.pack()
    janela1=Entry()
    janela1.pack()
    cpf = Label(text="CPF:")
    cpf.pack()
    janela2=Entry()
    janela2.pack()
    dataemprest = Label(text="Data de emprestimo:")
    dataemprest.pack()
    janela3=Entry()
    janela3.pack()
    datadevol = Label(text="Data de devolucao:")
    datadevol.pack()
    janela4=Entry()
    janela4.pack()
    salvar= Button (text="Salvar")
    salvar.pack()
    menu.mainloop()   
    app = Application(tk)
    tk.mainloop()

然后代替app = Application()尝试janelaemprestimo()