0

Windows 7 で奇妙な症状を示す wxPython プロジェクトがあります (Mac OS X ではすべて正常に動作します。Windows 7 は、このバージョンに対してテストしている唯一の勝利バージョンです)。アプリには wx.TaskBarIcon のサブクラスがあり、右クリック メニューを使用して、常に一番上に表示されるウィンドウを作成できます。各ウィンドウは、wxFormBuilder によって作成された wx.Frame または wx.Dialog のサブクラスです。

時々、それを再現する手順が見つからず、ウィンドウが表示されず、前面に呼び出すことができません。アプリのアイコンはタスクバーに表示されますが、ウィンドウは表示されません。アイコンをクリックしても何も起こらず、他のすべてのウィンドウを閉じてもウィンドウは表示されません。

現在ウィンドウをどのように表示しているかのスニペット:

#Initialization code, calling super's __init__ etc.
self.Center()
self.Show()
self.SetWindowStyle( self.GetWindowStyle() | wx.STAY_ON_TOP )

問題のデバッグを再現できないため、難しいです。self.Show の後に self.Raise と self.SetFocus を呼び出してみましたが、時々問題が発生します。誰かが wxPython で同様の問題を経験したか、これに対する可能な修正を知っていますか?

4

1 に答える 1

1

私が覚えているように、通常、初期化後にフレームスタイルを確実に変更することはできません。代わりに、STAY_ON_TOPスタイルフラグをフレームの初期化に配置する必要があります。ダイアログの場合は、ShowModal()を使用します。考えてみると、フレームのMakeModal()メソッドを使用することもでき、おそらくそれでも機能します。

于 2012-07-17T13:30:09.193 に答える