我使用自定義QFileDialog
,因爲我想選擇多個目錄。 但exec_
函數是非常緩慢的,我不明白爲什麼。我正在使用最新版本的PyQt。PyQt QFileDialog exec_很慢
代碼段:
from PyQt4 import QtGui, QtCore, QtNetwork, uic
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
uic.loadUi('gui.ui', self)
self.connect(self.multiPackerAddDirsBtn,
QtCore.SIGNAL('clicked()'), self.multiPackerAddDirs)
def multiPackerAddDirs(self):
dialog = QtGui.QFileDialog(self)
dialog.setFileMode(QtGui.QFileDialog.Directory)
dialog.setOption(QtGui.QFileDialog.ShowDirsOnly, True)
dialogTreeView = dialog.findChild(QtGui.QTreeView)
dialogTreeView.setSelectionMode(
QtGui.QAbstractItemView.ExtendedSelection)
if dialog.exec_():
for dirname in dialog.selectedFiles():
self.multiPackerDirList.addItem(str(dirname))
print(str(dirname))
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()
你在哪個平臺上?文件對話框*總是*緩慢,或者僅當您使用您發佈的代碼時? – ekhumoro
我在Windows 7上。如果我使用像getSaveFileName這樣的預定義方法,它的速度很快,但是如果我使用dialog = QtGui.QFileDialog(self)創建一個自定義對話框,並使用dialog.exec_(),它就像地獄一樣慢。 – Ahsous