Skip to main content
 首页 » 编程设计

带有 Tkinter 的 Python GUI

2025年05月04日28duanxz

我在 python 中使用 gui 时遇到问题,程序会自动执行按钮创建中的命令选项。所以我陷入了一个循环。 ''' 创建于 5-mrt.-2012

@author: Max 
''' 
from Tkinter import * 
 
 
class main(Tk): 
    def __init__(self,parent): 
        self.mainWindow() 
    def mainWindow(self): 
        '''Make the main window ''' 
        self.quitAll() 
        self.app = Tk() 
        self.app.title('NMBS application') 
        self.makeAppButtons() 
        self.finish(self.app) 
    def makeAppButtons(self): 
        '''Make all the buttons for the main menu''' 
        button_lijn = Button(self.app, text="Voeg lijnritten toe", command = self.lijnritten()) 
        button_lijn.pack() 
    def finish(self,window): 
        ''' Make the main window''' 
        window.mainloop() 
    def endButton(self,window): 
        '''Make a quit button''' 
        button_back = Button(window,text="Sluiten",command = self.mainWindow()) 
        button_back.pack() 
    def quitAll(self): 
        '''Close all the current windows''' 
        self.lijn_window.quit() 
        self.app.quit() 
    def lijnritten(self): 
        ''' Make the lijnritten window''' 
        self.app.quit() 
        self.lijn_window = Tk() 
        self.lijn_window.title("lijnritten") 
        self.endButton(self.lijn_window) 
        self.finish(self.lijn_window) 
main(None) 

请您参考如下方法:

当您链接命令时,不要使用 () 所以 command=self.action,就像这样。此外,这一行似乎给您带来了一些麻烦 self.quitAll()...不确定您要用它做什么,但这是我的两分钱。

'''  
Created on 5-mrt.-2012 
@author: Max 
''' 
from Tkinter import * 
 
 
class main(Tk): 
    def __init__(self,parent): 
        self.mainWindow() 
    def mainWindow(self): 
        '''Make the main window ''' 
        #self.quitAll() 
        self.app = Tk() 
        self.app.title('NMBS application') 
        self.makeAppButtons() 
        self.finish(self.app) 
    def makeAppButtons(self): 
        '''Make all the buttons for the main menu''' 
        button_lijn = Button(self.app, text="Voeg lijnritten toe", command = self.lijnritten) 
        button_lijn.pack() 
    def finish(self,window): 
        ''' Make the main window''' 
        window.mainloop() 
    def endButton(self,window): 
        '''Make a quit button''' 
        button_back = Button(window,text="Sluiten",command = self.mainWindow) 
        button_back.pack() 
    def quitAll(self): 
        '''Close all the current windows''' 
        self.lijn_window.quit() 
        self.app.quit() 
    def lijnritten(self): 
        ''' Make the lijnritten window''' 
        self.app.quit() 
        self.lijn_window = Tk() 
        self.lijn_window.title("lijnritten") 
        self.endButton(self.lijn_window) 
        self.finish(self.lijn_window) 
main(None)