QTreeWidgetItem添加自定义数据
生活随笔
收集整理的這篇文章主要介紹了
QTreeWidgetItem添加自定义数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
QTreeWidgetItem添加自定義數據
本文簡要介紹一個知識點,如題所示,就是如何給QTreeWidgetItem添加自定義數據。兩種方法:
方法一
數據可以是任意類型(Variant類型),如果不是基本數據類型的數據,則需要定義一個結構體表示數據類型。這里這樣定義:
struct User:public QObjectUserData {QString imgpath;int itemtype; }; Q_DECLARE_METATYPE(User)QTreeWidget *tree = new QTreeWidget; tree->setColumnCount(1); tree->setHeaderLabel("標題");QTreeWidgetItem *item = new QTreeWidgetItem(0); item->setText(0,"hello world!"); User mydata; mydata.imgpath = ":/new/picture/images/pc.png"; mydata.itemtype = 1;//寫入數據 item->setData(0,Qt::UserRole+1,QVariant::fromValue(mydata));//讀取數據 User data = item->data(0,Qt::UserRole+1).value<User>(); qDebug() << data.imgpath << data.itemtype;方法二
繼承QTreeWidgetItem,寫一個類把信息(自定義數據)存放在里面,假設該類為MyQTreeItem。
創建一個該類的對象:myQTreeItem和new 一個QTreeWidgetItem對象sysQTreeItem,然后執行tree->setItemWidget(sysQTreeItem ,0,(QWidget*)myQTreeItem); 0表示第1欄。
當樹的節點被點擊后,獲取樹的當前QTreeWidgetItem(假設這里是m_pCurrentItem),然后
MyQTreeItem* myItem = (MyQTreeItem*)tree->itemWidget(m_pCurrentItem,0);獲取到myItem后即可讀取數據了。
qDebug() << myItem->m_sImgPath << myItem->m_iItemType;
作者公眾號:IT平頭哥。分享工作中遇到的問題,開卷有益,歡迎來撩~
總結
以上是生活随笔為你收集整理的QTreeWidgetItem添加自定义数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 测试测试
- 下一篇: ie浏览器怎么打开html,ie浏览器在