2015-11-16 70 views
0

[问题] 如果我结合tkinter和wxpython,然后应用程序。窗口将冻结。 因此请分享一个提示。 我认为它与线程有关,但我无法完全理解它。如何结合tkinter和wxpython而不冻结窗口 - python?

[CODE]

from Tkinter import * 
master = Tk() 


def getFiles(): 
    import wx 
    app = wx.App(False) 
    locale = wx.Locale(wx.LANGUAGE_ENGLISH) 
    frame = wx.Frame(None, wx.ID_ANY, "test", style=wx.MINIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN) 
    frame.Center() 
    frame.SetBackgroundColour('LIGHTGREY') 
    frame.SetSize(200,400) 
    # Create grid manager instance 
    sizer = wx.GridBagSizer() 
    # Create Label for: Available testcase 
    entry = wx.StaticText(frame, wx.ID_ANY, u"Available testcases:", wx.DefaultPosition, wx.DefaultSize, 0) 
    sizer.Add(entry,(1,1),(1,1),wx.EXPAND) 
    frame.SetSizerAndFit(sizer) 
    frame.Show(True)  # Show the frame. 
    app.MainLoop() 

b = Button(master, text="OK", command=lambda : getFiles()) 
b.pack() 
master.mainloop() 

[注] 我需要因为wxPython中:GenericDirCtrl对象。 我没有在tkinter,ttk,tix中找到相同的对象。继续调查

回答

3

你不能结合tkinter和wxPython。它们都是具有自己的事件循环的GUI工具包,基本上是无限循环处理来自小部件的事件。你不能一次运行两个无限循环。

但是,也可能没有理由一次运行。如果你需要一个不存在于tkinter中的小部件,只需用wxPython构建你的整个应用程序即可。