1,調整列寬:
header()->setResizeMode(QHeaderView::Interactive);
setColumnWidth( 0 , 200 ); //第一列寬設為200
2,單擊tree widget 的 header 自動重新排列各item,設置如下:
setSortingEnabled(true);
3,拖曳:
setDragEnabled(true); //允許拖曳某item
setAcceptDrops(true); //允許item接受拖曳過來的item
setDragDropMode(QAbstractItemView::InternalMove); //移動模式,某item拖走后原來的位置不再保留該item
4,激活編輯狀態的動作:
setEditTriggers( QAbstractItemView::SelectedClicked ); // QAbstractItemView::SelectedClicked
//表示當該item呈被選擇狀態時再被單擊就可編輯該項,類似windows資源管理器中重命名文件
像上圖這樣的效果,其實現很簡單,代碼如下:
QTreeWidget *legendView = new QTreeWidget(legend); //創建一個QTreeWidget對象
legend->setWidget(legendView); //將該對象設為以前創建的停靠窗口legend的部件
legendView->setSortingEnabled(false); //不自動排序
legendView->setDragEnabled(false); //不可拖放
legendView->setAutoScroll(true); //可以卷動
legendView->setColumnCount(1); //列數
legendView->header()->setHidden(1); //隱藏最頂上的表頭
legendView->setRootIsDecorated(true); //讓根項目前面也有樹狀虛線
QTreeWidgetItem * item1 = new QTreeWidgetItem();
item1->setText(0,"item1");
item1->setFlags(Qt::ItemIsEditable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
item1->setCheckState (0, Qt::Checked);
QIcon myIcon(QgsApplication::themePath()+"/mActionFolder.png");
item1->setIcon(0, myIcon); //還可以為item自定義圖標
legendView->addTopLevelItem(item1); //把item添加到QTreeWidget中
QTreeWidgetItem * item2 = new QTreeWidgetItem(item1); //為item1添加子項目,這樣item1前面會出現“+”,
item2->setText(0,"item2");
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
