我正在尝试在可以位于不同计算机上的两个不同程序之间发送文件夹结构。在我的服务器上我有一个QFileSystemModel
,在我的客户端上我有QTreeView
一个QStandardItemModel
作为模型的。而且我有一个可以在程序之间发送QString
和发送的预构建信号/插槽系统。QStringList
客户:
auto *m_stdItemModel = new QStandardItemModel(this);
auto *m_treeView = new QTreeView(this);
m_treeView->setModel(m_stdItemModel);
每次单击客户端上的展开按钮时,我都想从服务器发送子目录m_treeView
。问题是条目只有在有子项时才能扩展。
我这样做的方法是添加一个虚拟孩子并在用户单击展开按钮时将其删除。
添加假人:
void addChildToParent(QString child, QStandardItem *parentItem, bool isExpandable)
{
auto *childItem = new QStandardItem(child);
if(isExpandable)
{
childItem->appendRow(new QStandardItem("dummy"));
}
parentItem->appendRow(childItem);
}
是否有一种解决方法可以在不添加虚拟孩子的情况下添加展开按钮?
亲切的问候