2013-07-31 23 views
1

我是Aptana的新手,并且在网上搜索了解它如何处理gui开发。Aptana 3 Pydev在运行后没有得到Tk()窗口

我试过下面的代码。它在控制台中显示没有错误。但是,它不会给我名为myGui的Tk()窗口。

from Tkinter import * 
import ttk 

def main(): 
    myGui = Tk() 
    myGui.title("My Gui New") 
    myGui.geometry('400x200+200+200') 

    l = Label(myGui, text="Help") 
    l.pack() 

if __name__ == "__main__": 
    main() 

任何指针。我能够让我的函数在控制台中运行,但是这个Gui开发并没有那么好。

+1

你有没有试过把'myGui.mainloop()'放在main函数的末尾? –

+0

谢谢你指出这个错误。 添加myGui.mainloop()是我的问题。 –

回答

1

-IT是对的,你确实想在main的末尾添加myGui.mainloop()

通常,当我在Tkinter工作时,我尝试将您的函数main中的一些信息移动到if...子句中。这使得更大,更复杂的界面更容易处理。

一个良好的开端是使用一类:

from Tkinter import * 
from ttk import * 

class App(Frame): 
    def __init__(self, master): 
     Frame.__init__(self, master) 
     self.pack() 
     self.create_widgets() 

    def create_widgets(self): 
     self.l = Label(self, text='Help') 
     self.l.pack() 

if __name__ == '__main__': 
    root = Tk() 
    app = App(root) 
    root.mainloop() 

这样做的好处是,你可以很容易地引入toplevels,产生额外添加小部件(以有组织的方式),并有更清晰的代码。您还可以使用这些类为其他小部件制作模板;在这种情况下,您正在构建一个特殊的框架类并为其提供所需的任何属性。对于按钮,条目和其他框架也可以做同样的事情。我不熟悉aptana3,但这应该没有问题。只要确保您的缩进是一致的。

+0

非常感谢。 ! OOP –