やあみんな私はこの問題をしばらくの間デバッグしようとしていたが役に立たなかった。
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。ただし、修正や回避策を提供しているものはありませんが、フォーカスを渡すことには問題があるようです。