0

Xをクリックするとウィンドウが非表示になり、ドックアイコンを押すとウィンドウが表示されるように、空のフレームを取得しようとしています。それは私が予想したよりも多くの課題であることが判明しました.. http://wiki.wxpython.org/Optimizing%20for%20Mac%20OS%20X/を使用しましたが、それをやり遂げることはできません。

これが私のコードです:

import wx

class Frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "title",style=wx.SYSTEM_MENU | wx.CLOSE_BOX | wx.CAPTION, size=(300,300))
    panel = wx.Panel(self)


    def MacReopenApp(self, event):
         print "Attempting to reveal the window."

    def MacHideApp(self, event):
        print "Attempting to hide the window."


if __name__ == '__main__':
    app = wx.App()
    frame = Frame()
    frame.Show()
    app.MainLoop()
4

1 に答える 1

0

リンク先のドキュメントには、これらのイベント ハンドラーをアプリに追加する必要があると記載されています。現在、フレーム上でそれらを定義しています。wx.Appしたがって、これらのイベント ハンドラーを拡張して定義し、App代わりに独自のインスタンスを作成する必要がありますwx.App

だから(あなたのリンクからコピーされた短縮された例):

class MyApp(wx.App):
    def __init__(self, *args, **kwargs):
        wx.App.__init__(self, *args, **kwargs)

        # This catches events when the app is asked to activate by some other
        # process
        self.Bind(wx.EVT_ACTIVATE_APP, self.OnActivate)

    #.....

    def MacReopenApp(self):
        """Called when the doc icon is clicked, and ???"""
        self.BringWindowToFront()

app = MyApp(False)
app.MainLoop()
于 2013-08-15T14:15:54.290 に答える