2016-06-22 14 views
0

私は働いている会社のためにいくつかのソフトウェアに取り組んでいます。私はGUIのwxを使用しています。私は基本的にこれを持っています: プログラムがビジー状態またはロード中のときは、wx.BusyInfoオブジェクトを作成します。しかし、時々、このビジーな情報ボックスはまだ見えて、私はユーザーにエラーメッセージを印刷する必要がありますが、そのMessageDialogは実際にBusyInfoボックスの下にポップアップしています。どうして? BusyInfoの上にエラーを表示する方法はありますか?私はwx.STAY_ON_TOPオプションを試しましたが、動作しませんでした。wx Python MessageDialogがBusyInfoボックスの後ろにポップアップしていますか?

私のクラスが複雑になり、BusyInfoを削除してエラーを表示し、BusyInfoを再作成する必要がないため、この方法で動作させる必要があります。私のコードでは、BusyInfoボックスの上にMessageDialogエラーを表示するほうが簡単です。

ありがとうございました。私はこの問題を解決する方法を見つけた

# myWindow is the main Window or Frame 
wx.BusyInfo("Loading, please wait ...", myWindow) 
wx.MessageDialog(myWindow, "Error message", "Error!", style = wx.OK | wx.ICON_EXCLAMATION | wx.STAY_ON_TOP) 

答えて

0

Google検索と研究の多くの後:

は、ここで私が何をしようとしています何のためにいくつかのサンプルコードです!まず、wx.BusyInfoを使用する代わりにPyBusyInfoを使用します(コードはここにあります:https://searchcode.com/codesearch/view/63249201/)。これは、wx.BusyInfoはwx.Windowクラスから実際に継承されていませんが、PyBusyInfoはそうであるためです。私たちはwx.MessageDialogに渡すので、ビジーのフレームが必要です。次に、self._infoFrameを親としてwx.MessageDialogに渡します。それでおしまい。

まず、私はPyBusyInfoクラスにこのメソッドを追加しました:

def getFrame(self): 
    return self._infoFrame 

をその後、私はそれがビジー情報ボックスの上にエラーメッセージが表示されて正常に動作させるために、このコードを実行します。

myBusy = PyBusyInfo("Loading, please wait ...", myParentWindow) 
wx.MessageDialog(myBusy.getFrame(), "Error message", "Error!", style = wx.OK | wx.ICON_EXCLAMATION | wx.STAY_ON_TOP) 

この解決するのは難しい問題でしたが、この情報は同じ問題を抱えている他の人々に役立つはずです。

関連する問題