我使用自定义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