QTreeview之setData绑定一个对话框
来源:互联网 发布:收钱软件哪个好 编辑:程序博客网 时间:2024/06/07 19:11
一、问题描述:点击QTreeview节点实现弹出一个对话框,由于每点击一个节点都要弹出一个对话框,所以把对话框定义成类的成员函数肯定是不行的。但是在多次点击同一个叶子节点时会弹出多个对话框,这又不满足需求啦。
二、解决思路:要满足要求有两种思路,第一种是把treview节点和对应的对话框指针保存到一个容器中,每次点击时先查看容器中是否保存了该节点对应的窗口指针,这种方法应该是可行的,但是比较麻烦点;第二种就是使用setData设置角色,我采用的就是第二种方法实现的。
三、示例代码如下:
connect(m_tree, SIGNAL(clicked(const QModelIndex)), this, SLOT(dealShowCheckDlg(const QModelIndex)));void MainWindow::dealShowCheckDlg(const QModelIndex &index){ QStandardItem *pItem = m_model->itemFromIndex(index); QString indexData = ""; int row = -1; QString xmlFileName = ""; if (!index.parent().data().toString().isEmpty()) { indexData = index.data().toString(); row = index.row(); xmlFileName = m_checkSrcList.at(row); } ProductConfigDlg *dlg = NULL; QVariant tempDlgVar = pItem->data(Qt::UserRole + row + 1); if (!tempDlgVar.isNull()) { dlg = tempDlgVar.value<ProductConfigDlg*>(); } else { dlg = new ProductConfigDlg; QVariant dlgValue = QVariant::fromValue(dlg); pItem->setData(dlgValue, Qt::UserRole + row + 1); } if (dlg == NULL) return;dlg->show();
阅读全文
0 0
- QTreeview之setData绑定一个对话框
- 微信小程序之this.setData
- qtreeview
- QTreeView
- QTreeView
- 【Qt】之 QTreeView和QFileSystemModel
- Qt之QSS(QTreeView)
- QT之qss教程-QTreeView
- dom4j的一个问题 element.setData(Object data)
- 自定义对话框绑定控件
- QT做一个硬盘目录视图QTreeView,QDirModel
- Qt学习:项视图类之QDirModel和QTreeView
- 一个对话框
- 对话框控件的变量绑定
- django学习(二)之分页、vue.js数据绑定及模态对话框的使用
- 对话框之自定义对话框
- Qt学习之路(7): 创建一个对话框(上)
- Qt学习之路(8): 创建一个对话框(下)
- 转载的 :IDEA中Git的使用
- mysql常用操作 密码,常用命令,用户管理
- Intellij IDEA 中提示 Error Updating Changes xxx git xxx 错误的解决方法
- 微服务架构的分布式事务解决方案
- php laravel框架URL重写
- QTreeview之setData绑定一个对话框
- Android通过蓝牙与单片机(HC-05)进行通信,接收数据
- VS2015 VMware Win10驱动调试环境问题总结
- Android状态栏颜色修改,取消状态栏
- 银行场景测试-服务器脚本
- 数据挖掘模型中的IV和WOE详解
- Centos6.9 Python2.6升级2.7
- 时间都去哪了
- 基于haar+adaboost的人脸检测、深度学习的人脸识别技术应用综述