效果圖:
關鍵代碼:
void MainProj::_InitTree()
{
?? ?connect(m_pTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*, int)), this, SLOT(TreeItemClicked(QTreeWidgetItem*, int)));
?? ?m_pTreeWidget->header()->setHidden(1);
?? ?/*QTreeWidgetItem* topItem = new QTreeWidgetItem;
?? ?topItem->setCheckState(0, Qt::Unchecked);
?? ?topItem->setText(0, "liebiao");*/
?? ?m_pTreeWidget->setColumnCount(2);
?? ?m_pTreeWidget->setColumnWidth(0, 200);
?? ?QTreeWidgetItem* topItem = _AddTreeItem(m_pTreeWidget, nullptr, "根");
?? ?m_pTreeWidget->addTopLevelItem(topItem);
?? ?QTreeWidgetItem* item1 = _AddTreeItem(m_pTreeWidget, topItem, "目標1");
?? ?//item1->setIcon(0,)
?? ?QList<QString> listTarget;
?? ?listTarget << "11" << "12";
?? ?for (int i = 0; i < listTarget.count(); i++) {
?? ??? ?_AddTreeItem(m_pTreeWidget, item1, listTarget.at(i));
?? ?}
?? ?QTreeWidgetItem* item2 = _AddTreeItem(m_pTreeWidget, topItem, "目標2");
?? ?listTarget.clear();
?? ?listTarget << "21" << "22" << "23";
?? ?for (int i = 0; i < listTarget.count(); i++) {
?? ??? ?_AddTreeItem(m_pTreeWidget, item2, listTarget.at(i));
?? ?}
?? ?QTreeWidgetItem* item3 = _AddTreeItem(m_pTreeWidget, topItem, "目標3");
?? ?listTarget.clear();
?? ?listTarget << "31" << "32" << "33" << "34";
?? ?for (int i = 0; i < listTarget.count(); i++) {
?? ??? ?_AddTreeItem(m_pTreeWidget, item3, listTarget.at(i));
?? ?}
?? ?m_pTreeWidget->expandAll();
}
QTreeWidgetItem* MainProj::_AddTreeItem(QTreeWidget* pTree, QTreeWidgetItem* parentItem, const QString& itemTxt)
{
?? ?QTreeWidgetItem* item = new QTreeWidgetItem(parentItem);
?? ?item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
?? ?item->setCheckState(0, Qt::Unchecked);
?? ?item->setText(0, itemTxt);
?? ?QIcon icon(":/MMIProject/Resource/Help.ico"); // 設置圖標路徑,替換為實際路徑
?? ?item->setIcon(0, icon); // 在第一列設置圖標
?? ?item->setText(1, QString("success"));
?? ?QIcon icon1(":/MMIProject/Resource/LedOn.ico"); // 設置圖標路徑,替換為實際路徑
?? ?item->setIcon(1, icon1); // 在第一列設置圖標
?? ?return item;
}
?