I need to create a QTreeView based on requests.
So, when the user open the application, it should make a request to get the root item for the tree. Once the user clicks on that item, it should ask for the children, and so on.
I couldn’t find any working example with requests as I want and I don’t even know if this is possible.
It’s quite simple really.
Firstly, connect the tree’s expanded signal to a handler, and populate the tree with the root’s top-level items.
When the signal is fired, it will pass the index of the expanded item to the handler. The handler can then use this to check whether the item has any children using, say, the model’s hasChildren method.
If the item already has children, do nothing; otherwise, populate it with whatever top-level items are appropriate for that item.
UPDATE
Below is a script demonstrates how to build a tree dynamically.
For simplicity, the demo uses a QTreeWidget, thus avoiding the need for a separate model. Additional data is stored within the tree by using QTreeWidgetItem.setData.
Note that the
sipimport at the top is only needed for compatibilty between Python 2 and 3 (see here for details). If you’re using Python 2, it’s not needed.