欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 【接口封装】——18、添加目录项列表响应

【接口封装】——18、添加目录项列表响应

2025/7/3 13:17:28 来源:https://blog.csdn.net/the_dry/article/details/146105587  浏览:    关键词:【接口封装】——18、添加目录项列表响应

 解释:

1、封装内容:列表显示

2、Qt::UserRole:设置不同的值,以此区分多级目录项

函数定义:

	void onTreeItemClicked(QTreeWidgetItem* item);void onTreeItemDoubleClicked(QTreeWidgetItem* item);void onTreeItemExpanded(QTreeWidgetItem* item);void onTreeItemCollapsed(QTreeWidgetItem* item);	//缩放void initContact();

源代码:


void CCMainWindow::initContact()
{//根项QTreeWidgetItem* rootItem = new QTreeWidgetItem;rootItem->setData(0, Qt::UserRole, 0);  //根项设置为 0,子项为 1, 以示区分根项子项RootContactItem* rootWidget = new RootContactItem(true, ui.treeWidget);rootWidget->setText(RootContact_TEXT);ui.treeWidget->addTopLevelItem(rootItem);	//添加顶级项ui.treeWidget->setItemWidget(rootItem, 0, rootWidget);//连接根项目录的信号与槽函数connect(ui.treeWidget, &QTreeWidget::itemClicked, this, &CCMainWindow::onTreeItemClicked);connect(ui.treeWidget, &QTreeWidget::itemDoubleClicked, this, &CCMainWindow::onTreeItemDoubleClicked);connect(ui.treeWidget, &QTreeWidget::itemExpanded, this, &CCMainWindow::onTreeItemExpanded);connect(ui.treeWidget, &QTreeWidget::itemCollapsed, this, &CCMainWindow::onTreeItemCollapsed);		//折叠}void CCMainWindow::onTreeItemClicked(QTreeWidgetItem * item)
{bool isRoot = !(item->data(0, Qt::UserRole).toBool());	//根项被设置为0,isRoot:trueif (isRoot) {item->setExpanded(!item->isExpanded());}}void CCMainWindow::onTreeItemDoubleClicked(QTreeWidgetItem * item)
{bool isChild = item->data(0, Qt::UserRole).toBool();//子项被设置为1if (isChild) {qDebug() << QString::fromLocal8Bit("打开聊天窗口:") << item->data(0, Qt::UserRole + 1);}}void CCMainWindow::onTreeItemExpanded(QTreeWidgetItem * item)
{bool isRoot = !(item->data(0, Qt::UserRole).toBool());	//根项被设置为0,isRoot:trueif (isRoot) {RootContactItem* rootWidget = dynamic_cast<RootContactItem*>(ui.treeWidget->itemWidget(item, 0));if (rootWidget) {rootWidget->setExpanded(true);}}
}//折叠:collapsed
void CCMainWindow::onTreeItemCollapsed(QTreeWidgetItem * item)
{bool isRoot = !(item->data(0, Qt::UserRole).toBool());	//根项被设置为0,isRoot:trueif (isRoot) {//dynamic_cast:强制类型转换RootContactItem* rootWidget = dynamic_cast<RootContactItem*>(ui.treeWidget->itemWidget(item, 0));if (rootWidget) {rootWidget->setExpanded(false);}}}
RootContactItem(bool hasArrow = true, QWidget *parent = nullptr);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词