My QFileSystemModel doesn't work as expected in PyQt

Posted by Skilldrick on Stack Overflow See other posts from Stack Overflow or by Skilldrick
Published on 2010-04-17T13:15:40Z Indexed on 2010/04/17 13:23 UTC
Read the original article Hit count: 257

Filed under:
|
|
|

I'm learning the Qt Model/View architecture at the moment, and I've found something that doesn't work as I'd expect it to. I've got the following code (adapted from Qt Model Classes):

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

childIndex = model.index(0, 0, parentIndex)
print model.data(childIndex).toString()

rows = model.rowCount(parentIndex)
print rows #prints 0 (even though the current directory has directory and file children)

The question:

Is this a problem with PyQt, have I just done something wrong, or am I completely misunderstanding QFileSystemModel? According to the documentation, model.rowCount(parentIndex) should return the number of children in the current directory.

The QFileSystemModel docs say that it needs an instance of a Gui application, so I've also placed the above code in a QWidget as follows, but with the same result:

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()

        childIndex = model.index(0, 0, parentIndex)
        print model.data(childIndex).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()

© Stack Overflow or respective owner

Related posts about qt

Related posts about python