通过connect()把QTreeView 与对应的Model联系起来,在此之前必须先使用QTreeView的setModel()设置模式。
下面的代码达不到要求的效果:
connect(model,SIGNAL(reset()),treeView,SLOT(expandAll()));
treeView->setModel(model);
正确的做法是:
treeView->setModel(model);
connect(model,SIGNAL(reset()),treeView,SLOT(expandAll()));
虽然调试的时候显示的是连接成功(connect()返回值为true);但是实际的效果却没有出来。这是什么原因呢?
视图是依赖于模式的,所以在有视图之前必须要有模式。
以下代码能说明在这个问题:
treeView->expandAll();
treeView->setModel(model);
其效果也不会出来。
如果追究深层原因可能要涉及Qt的信号槽机制。