2

聞いたことのないエラーが発生しました。システムトレイに最小化できるタスクマネージャーがあり、アイコンを左クリックすると再び開きますが、これを行うと Pydeadobjecterror が発生します。1 つの wxpyton クラスに対して 2 つの継承があったという事実と関係があると思います。その後、その継承を削除しましたが、エラーが発生しています。エラーは次のとおりです。

Traceback (most recent call last):
    File "C:\Python27\TrayIcon.py", line 25, in LeftClick
       self.frame.Show()
   File "C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 14619, in __getattr__
   raise PyDeadObjectError(self.attrStr % self._name)
wx._core.PyDeadObjectError: The C++ part of the MainFrame object has been deleted, attribute access no longer    allowed.

とにかく、コードを複数のファイルに分割する時間がなかったので、コードは約400行の長さなので、ここに貼り付けるよりも簡単なものに貼り付けただけです。申し訳ありませんが、リンクは http://bpasteです。 net/show/liDNQVppFldurLcCfvK8/そして明らかに、これはエラーがhttp://bpaste.net/show/etcWMPqFC8H6NQRG7uYV/であるコードです

誰かが私を助けることができれば、それは素晴らしいことです

4

1 に答える 1

5

X でフレームを閉じている場合は、フレームを破棄しています。代わりに非表示にする必要があります。これについていくつかのチュートリアルを書きました。

基本的な考え方は、EVT_CLOSE をキャッチし、フレームを閉じる代わりに非表示にすることです。システム トレイ アイコンを右クリックしてアプリを閉じるだけです。また、EVT_ICONIZE をキャッチして、フレームを最小化するときにフレームを非表示にできるようにすることも必要です。

于 2013-08-13T13:32:19.567 に答える