嘿傢伙我一直在試圖調試這個問題一段時間無濟於事。FileDialog ShowModal後MessageDialog無響應
我已經定義了一個函數綁定到一個調用FileDialog的按鈕,如果用戶單擊確定,函數將恢復。在ID_OK後立即嘗試調用一個簡單的對話框,提示用戶從另一個目錄中選擇文件。此消息對話框出現後,立即出現延遲,用戶無法在第一次單擊時按OK或取消。需要重複點擊按鈕才能響應。如果有人知道這裏發生了什麼,或者可以做些什麼來調試這個問題,我將非常感謝:)。我已經附加了代碼片段(儘管使用SingleChoiceDialog,但行爲與MessageDialog相同)。對於記錄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。它似乎是一個傳遞焦點的問題,但是他們都沒有提供修復或解決方法。
嗯,即使我完全刪除while循環,只需添加如果dlgAdd.ShowModal()== wx.ID_OK:啓動函數(授予此簡化不是所需的功能),問題仍然存在。 –
無反應可能不是實際描述問題的最佳詞彙。有趣的是,我可以在彈出對話框後等待1秒或10秒,然後第一次點擊OK或CANCEL按鈕,調整大小,移動,ETC等都會失敗。這好像是焦點問題,因爲彈出對話框後可以觸摸對話框的任何部分,然後OK和CANCEL按鈕立即工作。 –