0

私はPythonでGUIに取り組んでいます。easyGUI (http://easygui.sourceforge.net/) を試してみましたが、2 つのウィンドウを同時に表示する方法が見つからないことを除けば、非常にうまく機能します。

これは、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 で意図したとおりに機能します!...

EDIT2:

代わりに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
4

1 に答える 1

1

EasyGUI は Tkinter に基づいており、基本的には一連のダイアログです。私は Tkinter と wxPython を混ぜません。代わりに、wx でダイアログを作成するだけです。EasyGUI が持っているほとんどのダイアログは、wxPython に同等のものがあるか、wx.Dialog の単純なサブクラスで作成できます。見る:

そして、MessageDialog または GenericMessageDialog をチェックしてください

于 2012-08-27T13:37:03.587 に答える