EDIT2 :model.hasChildren(parentIndex)
반환 True
하지만 model.rowCount(parentIndex)
반환 0
. QFileSystemModel은 PyQt에서 fubar인가요?PyQt는 예상대로 내 QFileSystemModel이 작동하지 않습니다
EDIT : 약간의 수정을 통해 QDirModel을 사용할 경우이 모든 기능이 제대로 작동합니다. 이것은 더 이상 사용되지 않지만 QFileSystemModel이 PyQt에서 완전히 구현되지 않았을 수 있습니까?
저는 현재 Qt Model/View 아키텍처를 배우고 있으며 기대했던대로 작동하지 않는 것을 발견했습니다.
from PyQt4 import QtCore, QtGui
model = QtGui.QFileSystemModel()
parentIndex = model.index(QtCore.QDir.currentPath())
print model.isDir(parentIndex) #prints True
print model.data(parentIndex).toString() #prints name of current directory
rows = model.rowCount(parentIndex)
print rows #prints 0 (even though the current directory has directory and file children)
질문 : 나는 (Qt Model Classes에서 적응) 다음과 같은 코드를 가지고
이 PyQt는 문제가, 내가 그냥 뭔가 잘못 수행 한 또는 나는 완전히 오해 QFileSystemModel입니까? 설명서에 따르면 model.rowCount(parentIndex)
은 현재 디렉토리에있는 자식 수를 반환해야합니다. (나는 이것을 Python 2.6으로 우분투에서 실행 중이다.)
QFileSystemModel 문서는 Gui 응용 프로그램의 인스턴스가 필요하다고 말하기 때문에 위 코드를 QWidget에 다음과 같이 배치했지만 동일한 결과를 얻었다. :
import sys
from PyQt4 import QtCore, QtGui
class Widget(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
model = QtGui.QFileSystemModel()
parentIndex = model.index(QtCore.QDir.currentPath())
print model.isDir(parentIndex)
print model.data(parentIndex).toString()
rows = model.rowCount(parentIndex)
print rows
def main():
app = QtGui.QApplication(sys.argv)
widget = Widget()
widget.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
감사를 표시 한 후 코드가 어떤 UI 이벤트에 제대로 작동합니다 생각합니다. 예, processEvents()를 추가하면 타이머없이 동일한 결과를 얻을 수 있습니다. – Skilldrick