Skip to main content
 首页 » 编程设计

python之使用 tkinter 在 python 中进行 gui 编程时出错

2024年08月12日39insus

#!/usr/bin/python 
# -*- coding: iso-8859-1 -*- 
 
import Tkinter 
 
class simpleapp_tk(Tkinter.Tk): 
    def __init__(self,parent): 
        Tkinter.Tk.__init__(self,parent) 
        self.parent=parent 
    def initialize(self): 
        self.grid() 
 
        self.entry=Tkinter.Entry(self) 
        self.entry.grid(column=0,row=0,sticky='EW') 
        self.entry.bind("<Return>",self.OnPressEnter) 
 
        button=Tkinter.Button(self,test="Post it!",command=self.OnButtonClick) 
        button.grid(column=1,row=0) 
 
        label=Tkinter.Label(self,anchor="w",fg="white",bg="blue") 
        label=grid(column=0,row=1,columnspan=2,sticky='EW') 
 
        self.grid_columnconfigure(0,weight=1) 
 
    def OnButtonClick(self): 
        print "you clicked the button!" 
 
    def OnPressEnter(self,event): 
        print "you pressed enter!" 
 
if __name__=="__main__": 
    app=simpleapp_tk(None) 
    app.title('poster') 
    app.mainloop() 

我写这个程序是为了制作一个输入文本的框和一个按钮,但它除了一个窗口外什么也没有显示。哪里出错了?

请您参考如下方法:

主要问题是您忘记调用 app.initialize(),但您也有一些拼写错误。我已经在这个固定版本的评论中指出了。

import Tkinter 
 
class simpleapp_tk(Tkinter.Tk): 
    def __init__(self,parent): 
        Tkinter.Tk.__init__(self,parent) 
        self.parent=parent 
    def initialize(self): 
        self.grid() 
 
        self.entry=Tkinter.Entry(self) 
        self.entry.grid(column=0,row=0,sticky='EW') 
        self.entry.bind("<Return>",self.OnPressEnter) 
 
        button=Tkinter.Button(self,text="Post it!",command=self.OnButtonClick) 
        # the text keyword argument was mis-typed as 'test' 
 
        button.grid(column=1,row=0) 
 
        label=Tkinter.Label(self,anchor="w",fg="white",bg="blue") 
        label.grid(column=0,row=1,columnspan=2,sticky='EW') 
        # the . in label.grid was mis-typed as '=' 
 
        self.grid_columnconfigure(0,weight=1) 
 
    def OnButtonClick(self): 
        print "you clicked the button!" 
 
    def OnPressEnter(self,event): 
        print "you pressed enter!" 
 
if __name__=="__main__": 
    app=simpleapp_tk(None) 
    app.title('poster') 
    app.initialize() # you forgot this 
    app.mainloop()