【发布时间】:2014-04-09 00:50:31
【问题描述】:
我正在使用自定义QFileDialog,因为我想选择多个目录。
但是exec_ 函数很慢,我不知道为什么。我正在使用最新版本的 PyQt。
代码片段:
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_()
【问题讨论】:
-
你在什么平台上?文件对话框是否总是很慢,还是仅在您使用已发布的代码时?
-
我在 Windows 7 上。如果我使用像 getSaveFileName 这样的预定义方法,它会很快,但如果我使用 dialog = QtGui.QFileDialog(self) 创建自定义对话框并使用 dialog.exec_() 会很慢见鬼去吧。
标签: python qt pyqt qfiledialog