QT,令我痛苦一个下午的问题...(想有人帮帮忙^_^)
我想做一个文件浏览器,现在文件浏览功能已经做好了,想做一个, 当我点某一个文件,就把这个文件的完整路径显示出来,我代码这样写的
qDialog = QtGui.QDialog()
#Create Layout
qVBoxLayout = QtGui.QVBoxLayout()
#Create file browser
qFileSystemModel = QtGui.QFileSystemModel()
qFileSystemModel.setFilter(QtCore.QDir.AllEntries | QtCore.QDir.NoDotAndDotDot)
qFileSystemModel.setRootPath("/")
qTreeView = QtGui.QTreeView()
qTreeView.setModel(qFileSystemModel)
#Create a line edit to show the path
qLineEdit = QtGui.QLineEdit()
qLineEdit.setText(qFileSystemModel.filePath(qTreeView.currentIndex))
qLineEdit.setGeometry(QtCore.QRect(40, 100, 98, 107))
#Create another layout
qHBoxLayout = QtGui.QHBoxLayout()
#Create cancel and confirm buttons
qCancelBtn = QtGui.QPushButton()
qCancelBtn.setGeometry(QtCore.QRect(40, 100, 98, 107))
qCancelBtn.setObjectName("Cancel")
qCancelBtn.setText("Cancel")
qConfirmBtn = QtGui.QPushButton()
qConfirmBtn.setGeometry(QtCore.QRect(40, 180, 98, 27))
qConfirmBtn.setObjectName("Confirm")
qConfirmBtn.setText("Confirm")
qHBoxLayout.addWidget(qCancelBtn)
qHBoxLayout.addWidget(qConfirmBtn)
qVBoxLayout.addWidget(qTreeView)
qVBoxLayout.addWidget(qLineEdit)
qVBoxLayout.addLayout(qHBoxLayout)
qVBoxLayout.addWidget(qMessageBox)
qDialog.setLayout(qVBoxLayout)
qDialog.show()
qDialog.exec_()
但是总是报错说QFileSystemModel.fileName(QModelIndex): argument 1 has unexpected type 'builtin_function_or_method'‘
我看了qTreeView.currentIndex这个会返回一个 QModelIndex,然后qFileSystemModel.filePath会返回一个QString,满足类型要求呀,为什么还会报错呢,怎么解决呢,谢谢大家
代码:
qDialog = QtGui.QDialog()
#Create Layout
qVBoxLayout = QtGui.QVBoxLayout()
#Create file browser
qFileSystemModel = QtGui.QFileSystemModel()
qFileSystemModel.setFilter(QtCore.QDir.AllEntries | QtCore.QDir.NoDotAndDotDot)
qFileSystemModel.setRootPath("/")
qTreeView = QtGui.QTreeView()
qTreeView.setModel(qFileSystemModel)
#Create a line edit to show the path
qLineEdit = QtGui.QLineEdit()
qLineEdit.setText(qFileSystemModel.filePath(qTreeView.currentIndex))
qLineEdit.setGeometry(QtCore.QRect(40, 100, 98, 107))
#Create another layout
qHBoxLayout = QtGui.QHBoxLayout()
#Create cancel and confirm buttons
qCancelBtn = QtGui.QPushButton()
qCancelBtn.setGeometry(QtCore.QRect(40, 100, 98, 107))
qCancelBtn.setObjectName("Cancel")
qCancelBtn.setText("Cancel")
qConfirmBtn = QtGui.QPushButton()
qConfirmBtn.setGeometry(QtCore.QRect(40, 180, 98, 27))
qConfirmBtn.setObjectName("Confirm")
qConfirmBtn.setText("Confirm")
qHBoxLayout.addWidget(qCancelBtn)
qHBoxLayout.addWidget(qConfirmBtn)
qVBoxLayout.addWidget(qTreeView)
qVBoxLayout.addWidget(qLineEdit)
qVBoxLayout.addLayout(qHBoxLayout)
qVBoxLayout.addWidget(qMessageBox)
qDialog.setLayout(qVBoxLayout)
qDialog.show()
qDialog.exec_()
但是总是报错说QFileSystemModel.fileName(QModelIndex): argument 1 has unexpected type 'builtin_function_or_method'‘
我看了qTreeView.currentIndex这个会返回一个 QModelIndex,然后qFileSystemModel.filePath会返回一个QString,满足类型要求呀,为什么还会报错呢,怎么解决呢,谢谢大家
作者: nbdxkfq 发布时间: 2010-10-24