ちょっと私はこの問題をしばらくの間デバッグしようとしています。FileDialog ShowModalの後でMessageDialogが応答しない
FileDialogを呼び出すボタンにバインドされた関数を定義しました。ユーザーが[OK]をクリックすると、関数が再開します。 ID_OKの直後に、別のディレクトリからファイルを選択するように促す簡単なダイアログを呼び出そうとしました。このメッセージダイアログが表示された直後に、ユーザーが最初のクリックで[OK]または[キャンセル]を押すことができない遅延が発生しているように見えます。ボタンを繰り返しクリックすると応答します。もし誰かが何が起こっているのか、この問題をデバッグするために何ができるのか、私は非常に感謝しています:)。私はコードスニペットを添付しました(ただし、動作はMessageDialogと同じですが、SingleChoiceDialogを使用しています)。レコードの場合、dlgは条件文の後に破棄されます。
def openFile(self, event):
import os
import re
import csv
import sets
import datetime
dlg = wx.FileDialog(self, "Choose file(s)", os.getcwd(), "", "*.*", wx.OPEN | wx.MULTIPLE | wx.CHANGE_DIR)
if dlg.ShowModal() == wx.ID_OK:
path = dlg.GetPaths()
test = wx.SingleChoiceDialog(self, 'Add more files from different directories?', 'Selected Files', path, style=wx.CHOICEDLG_STYLE)
while test.ShowModal() == wx.ID_OK:
dlgAdd = wx.FileDialog(self, "Choose file(s)", os.getcwd(), "", "*.*", wx.OPEN | wx.MULTIPLE | wx.CHANGE_DIR)
if dlgAdd.ShowModal() == wx.ID_CANCEL:
break
dlgAdd.Destroy()
path = path + dlgAdd.GetPaths()
test = wx.SingleChoiceDialog(self, 'Add more files from different directories?', 'Selected Files', path, style=wx.CHOICEDLG_STYLE)
test.Destroy()
は、より多くのオンラインいくつかの周りを掘ったと同様の問題のレポートが見つかりました:http://comments.gmane.org/gmane.comp.python.wxpython/55470を。しかし、問題の解決策を提示していないが、焦点を合わせることで問題に見える。
Hmmm whileループを完全に削除しても、dlgAdd.ShowModal()== wx.ID_OK:関数を開始するだけで、この単純化が望ましい機能ではない場合でも、問題は引き続き解決されます。 –
この問題を実際に説明するには、応答しないことが最善の言葉ではないかもしれません。面白いことに、ダイアログがポップアップして、OKまたはCANCELボタンを最初にクリックしてサイズ変更、移動、ETCがすべて失敗してから1秒または10秒待つことができます。ダイアログがポップアップした後にそれに触れることができるので、それがフォーカスの問題であるかのように、OKボタンとCANCELボタンが即座に機能します。 –