我使用 Python 在 GUI 上工作。我尝试了easyGUI(http://easygui.sourceforge.net/),它工作得非常好,只是我还没有找到同时显示两个窗口的方法。
这是我迄今为止在 GNU/Linux 中尝试过的:
from easygui import *
import wx
class FicheFrame( wx.Frame ) :
def __init__( self, data ) :
wx.Frame.__init__( self, None,-1, "Custom data", size=(300, 400) )
self.d = data
scrollWin = wx.PyScrolledWindow( self, -1 )
x = 20
y = 20
txtStr = self.d
stTxt = wx.StaticText( scrollWin, -1, txtStr, pos=(x, y) )
w, h = stTxt.GetSize()
dy = h + 10
y += dy
scrollWin.SetScrollbars( 0, dy, 0, y/dy+1 )
scrollWin.SetScrollRate( 1, 1 )
myapp = wx.App( redirect=False )
myAppFrame = FicheFrame('data')
myAppFrame.Show()
exceptionbox(msg='Test test test', title=None)
myapp.MainLoop()
不幸的是,异常框显示在myAppFrame之前。当我关闭exceptionbox时,出现myAppFrame,我不明白为什么,不应该是相反的吗?
编辑: 这项工作在 Windows 中按预期工作!...
编辑2:
我实际上找到了一种使用 Tkinter 的方法......这段代码有效:
from easygui import *
from Tkinter import *
while True:
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
exceptionbox(msg='test test', title=None)
root.destroy()
root.mainloop()
del root