Qt|QTreewidget類下函數qt助手詳解說明示例(上)

該系列持續更新,喜歡請一鍵三連,感謝各位大佬。
QT5.14.2 參考官方QT助手

文章目錄

  • QTreeWidget Class
  • properties
  • Public Functions
    • 默認構造函數
    • 默認析構函數
    • 添加根節點void addTopLevelItem(QTreeWidgetItem *item)
    • 添加多個根節點void addTopLevelItems(const QList<QTreeWidgetItem *> &items)
    • 關閉編輯void closePersistentEditor(QTreeWidgetItem *item, int column = 0)
    • 獲取列數int columnCount() const
    • 返回當前選中列int currentColumn() const
    • 返回當前選中QTreeWidgetItem *currentItem() const
    • 沒用void editItem(QTreeWidgetItem *item, int column = 0)
    • 查找滿足條件的item返回QList<QTreeWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const
    • 返回表頭QTreeWidgetItem *headerItem() const
    • 返回index索引根據item int indexOfTopLevelItem(QTreeWidgetItem *item) const
    • 在指定索引位置插入新的top節點void insertTopLevelItem(int index, QTreeWidgetItem *item)
    • 插入多個top節點void insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)
    • 遞歸訪問所有根節點 返回一個模擬節點作為所有根節點的父節點QTreeWidgetItem *invisibleRootItem() const
    • 節點是否為可編輯狀態bool isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const
    • 不分層級獲取上層相鄰節點QTreeWidgetItem *itemAbove(const QTreeWidgetItem *item) const
    • 根據坐標返回節點QTreeWidgetItem *itemAt(const QPoint &p) const
    • 同上直接輸入坐標QTreeWidgetItem *itemAt(int x, int y) const
    • 返回顯示出的下層節點QTreeWidgetItem *itemBelow(const QTreeWidgetItem *item) const

在這里插入圖片描述

QTreeWidget Class

The QTreeWidget class provides a tree view that uses a predefined tree model. More…
QTreeWidget類提供了一個使用預定義樹模型的樹視圖。

Header:#include
qmake:QT += widgets
Inherits:QTreeView

List of all members, including inherited members
所有成員的列表,包括繼承的成員
Obsolete members
過時的成員

properties

columnCount : int
topLevelItemCount : const int

Public Functions

默認構造函數

QTreeWidget::QTreeWidget(QWidget *parent = nullptr)
在這里插入圖片描述
示例:

// 創建 QTreeWidget 對象
QTreeWidget *tree = new QTreeWidget;
tree->setColumnCount(3);                            // 設置列數為 3
tree->setHeaderLabels({ "Name", "Value", "Data" });   // 設置列標簽
tree->header()->setSectionResizeMode(QHeaderView::ResizeToContents); // 自適應列寬

默認析構函數

QTreeWidget::~QTreeWidget()
在這里插入圖片描述

添加根節點void addTopLevelItem(QTreeWidgetItem *item)

在這里插入圖片描述
示例:

// 創建根節點
QTreeWidgetItem *root = new QTreeWidgetItem(tree);
root->setText(0, "Root");
root->setText(1, "0");
root->setData(2, Qt::UserRole, "root data");
tree->addTopLevelItem(root);

在這里插入圖片描述

添加多個根節點void addTopLevelItems(const QList<QTreeWidgetItem *> &items)

在這里插入圖片描述
示例:

// 創建根節點
QTreeWidgetItem *root = new QTreeWidgetItem(tree);
root->setText(0, "Root");
root->setText(1, "0");
root->setData(2, Qt::UserRole, "root data");
//tree->addTopLevelItem(root);
QList<QTreeWidgetItem* > all_root_list;
all_root_list.push_back(root);
QTreeWidgetItem *root1 = new QTreeWidgetItem(tree);
root1->setText(0, "Root2");
all_root_list.push_back(root1);
tree->addTopLevelItems(all_root_list);

在這里插入圖片描述

關閉編輯void closePersistentEditor(QTreeWidgetItem *item, int column = 0)

在這里插入圖片描述
關閉item編輯器,如果是關閉的則此函數無效。
先打開看效果是這樣的:

tree->openPersistentEditor(root);

在這里插入圖片描述
然后再調用closePersistentEditor

tree->openPersistentEditor(root);
tree->closePersistentEditor(root);

在這里插入圖片描述

獲取列數int columnCount() const

在這里插入圖片描述

qDebug() << "tree->columnCount:"<<tree->columnCount();

在這里插入圖片描述

返回當前選中列int currentColumn() const

在這里插入圖片描述
默認-1,點擊選中哪列返回列號,索引從0開始。

qDebug() << "tree->currentColumn:" << tree->currentColumn();
connect(tree, &QTreeWidget::itemClicked, this, [=] {qDebug() << "tree->currentColumn:" << tree->currentColumn();
});

在這里插入圖片描述

返回當前選中QTreeWidgetItem *currentItem() const

在這里插入圖片描述
默認是NULL

QTreeWidgetItem* selectItem = tree->currentItem();

在這里插入圖片描述

沒用void editItem(QTreeWidgetItem *item, int column = 0)

在這里插入圖片描述

查找滿足條件的item返回QList<QTreeWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const

在這里插入圖片描述
查找包含字符串ro的item,以字符串不分大小寫匹配(第二個參數是匹配規則為枚舉類型詳見qt官方文檔說明)

QList<QTreeWidgetItem*> find_items = tree->findItems("ro",Qt::MatchContains);
for (auto item:find_items)
{qDebug() << item->text(0);
}

在這里插入圖片描述

返回表頭QTreeWidgetItem *headerItem() const

在這里插入圖片描述

QTreeWidgetItem* hearderItem = tree->headerItem();
qDebug() << hearderItem->text(0);
qDebug() << hearderItem->text(1);
qDebug() << hearderItem->text(2);
qDebug() << hearderItem->text(3);

在這里插入圖片描述

返回index索引根據item int indexOfTopLevelItem(QTreeWidgetItem *item) const

在這里插入圖片描述
只能獲取到top節點索引

qDebug() << tree->indexOfTopLevelItem(nullptr);
qDebug() << tree->indexOfTopLevelItem(root);
qDebug() << tree->indexOfTopLevelItem(child2);
qDebug() << tree->indexOfTopLevelItem(root1);

在這里插入圖片描述

在指定索引位置插入新的top節點void insertTopLevelItem(int index, QTreeWidgetItem *item)

在這里插入圖片描述
插入qstring超過列數則不顯示

QStringList insertitem;
insertitem << "insertroot" << "i2" << "2133" << "122344";
tree->insertTopLevelItem(1, new QTreeWidgetItem(insertitem));

在這里插入圖片描述

插入多個top節點void insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)

在這里插入圖片描述

QStringList insertitem;
insertitem << "insertroot" << "i2" << "2133";
QList<QTreeWidgetItem*> qtree_widget_list;
qtree_widget_list.push_back(new QTreeWidgetItem(insertitem));
insertitem.clear();
insertitem << "insertroot2";
qtree_widget_list.push_back(new QTreeWidgetItem(insertitem));
tree->insertTopLevelItems(0, qtree_widget_list);

在這里插入圖片描述

遞歸訪問所有根節點 返回一個模擬節點作為所有根節點的父節點QTreeWidgetItem *invisibleRootItem() const

在這里插入圖片描述
以該形式遍歷所有根節點:

QTreeWidgetItem* one = tree->invisibleRootItem();
int nums = one->childCount();
for (int i=0;i<nums;++i)
{qDebug() << one->child(i)->text(0);
}

在這里插入圖片描述

節點是否為可編輯狀態bool isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const

在這里插入圖片描述
獲取item是否為可編輯狀態,qt5.10之后版本才有這個函數

qDebug()<< tree->isPersistentEditorOpen(root);
tree->openPersistentEditor(root);
qDebug() << tree->isPersistentEditorOpen(root);
tree->closePersistentEditor(root);
qDebug() << tree->isPersistentEditorOpen(root);

在這里插入圖片描述

不分層級獲取上層相鄰節點QTreeWidgetItem *itemAbove(const QTreeWidgetItem *item) const

在這里插入圖片描述
只能獲取到展開節點,所以開始之前先調用expandAll(),否則獲取到的為顯示的相鄰節點。
若沒有顯示出來的上層節點則返回空指針。

tree->expandAll();
QTreeWidgetItem* t1 = tree->itemAbove(root);
if (t1)qDebug() << t1->text(0);
t1 = tree->itemAbove(child1);
if (t1)qDebug() << t1->text(0);
t1 = tree->itemAbove(root1);
if (t1)qDebug() << t1->text(0);

在這里插入圖片描述

根據坐標返回節點QTreeWidgetItem *itemAt(const QPoint &p) const

在這里插入圖片描述
樹形控件內部坐標,左上角為0,0點,如果對應坐標沒有節點返回NULL

QPoint* p1 = new QPoint(0, 0);
QTreeWidgetItem* t1 = tree->itemAt(*p1);
if (t1)qDebug() << t1->text(0);
QPoint* p2 = new QPoint(0, 40);
t1 = tree->itemAt(*p2);
if (t1)qDebug() << t1->text(0);

在這里插入圖片描述

同上直接輸入坐標QTreeWidgetItem *itemAt(int x, int y) const

在這里插入圖片描述
同上:
在這里插入圖片描述

返回顯示出的下層節點QTreeWidgetItem *itemBelow(const QTreeWidgetItem *item) const

在這里插入圖片描述
同itemAbove,只是取得下層節點,沒有下層則返回空指針
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716729.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716729.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716729.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode---【和的操作】

目錄 兩數之和我的答案在b站up那里學到的【然后自己復寫】 和為 K 的子數組在b站up那里學到的【然后自己復寫】 三數之和在b站up那里學到的【然后自己復寫】 兩數相加【鏈表】我的半路答案&#xff1a;沒有看到是鏈表在b站up那里學到的【復寫失敗后整理】 兩數之和 我的答案 …

Linux下的權限

1. 操作系統的外殼 在理解Linux權限之前&#xff0c;我們先來吃點小菜。 1.大部分指令都是文件&#xff0c;如果把指令對應的文件刪除了&#xff0c;那么這條指令就使用不了了。 2.用戶執行某種功能的時候&#xff0c;不是直接讓操作系統執行對應的指令的&#xff0c;而是先交…

IIC協議總結

1.基本理解 iic通信協議:雙線制串行通信協議,由時鐘線SCL和數據線SDA構成. 通信方式:主從模式,主設備發起通信,從設備響應通信 2.通信的基本步驟 a.主設備發送一個開始信號&#xff0c;表示開始通信&#xff0c;即啟動I2C 條件&#xff1a;SCL1&#xff0c;SDA出現下降沿 …

Python開源項目月排行 2024年2月

Python 趨勢月報&#xff0c;按月瀏覽往期 GitHub,Gitee 等最熱門的Python開源項目&#xff0c;入選的項目主要參考GitHub Trending,部分參考了Gitee和其他。排名不分先后&#xff0c;都是當前月份內相對熱門的項目。 入選公式&#xff1d;70%GitHub Trending20%Gitee10%其他 …

jvm面試題-背誦版

按照思維導圖抽查和記憶&#xff0c;答案見&#xff1a;四、面試-多線程/并發_scheduledfuture釋放-CSDN博客

Jmeter系列(4) 線程屬性詳解

線程屬性 線程組是配置壓測策略的一個重要環節線程組決定了測試執行的請求數量 線程數 在這里線程數相當于一個虛擬用戶每個線程數大約占內存1M特別注意?? 單臺機器最大線程數不要超過1000&#xff0c;不然可能會造成內存溢出 Ramp-Up時間 所有線程在多長時間內全部啟動…

【網絡工程設計】用GNS3和VMware搭建網絡環境

&#x1f4dd;本文介紹 本文主要是使用GNS3和VMware來搭建網絡環境 &#x1f44b;作者簡介&#xff1a;一個正在積極探索的本科生 &#x1f4f1;聯系方式&#xff1a;943641266(QQ) &#x1f6aa;Github地址&#xff1a;https://github.com/sankexilianhua &#x1f511;Gitee地…

計算機網絡-第2章 物理層

本章內容&#xff1a;物理層和數據通信的概念、傳輸媒體特點&#xff08;不屬于物理層&#xff09;、信道復用、數字傳輸系統、寬帶接入 2.1-2.2 物理層和數據通信的概念 物理層解決的問題&#xff1a;如何在傳輸媒體上傳輸數據比特流&#xff0c;屏蔽掉傳輸媒體和通信手段的差…

文獻閱讀筆記《Spatial-temporal Forecasting for Regions without Observations》13頁

目錄 目錄 目錄 發行刊物 ABSTRACT 1 INTRODUCTION 2 RELATED WORK&#xff08;相關工作 2.1 Spatial-temporal Forecasting&#xff08;時空預測 2.2 Spatial-temporal Forecasting withIncomplete Data&#xff08;不完全數據的時空預測 2.3 Graph Contrastive Lear…

藍橋杯集訓·每日一題2024 (前綴和)

筆記&#xff1a; 例題&#xff1a; #include<bits/stdc.h> using namespace std; const int N 5000010; char str[N]; int s[N]; int main(){int t;cin>>t;for(int a1;a<t;a){int n;cin>>n;scanf("%s",str1);for(int i1;i<n;i){s[i]s[i-1]…

【MySQL】:約束全解析

&#x1f3a5; 嶼小夏 &#xff1a; 個人主頁 &#x1f525;個人專欄 &#xff1a; MySQL從入門到進階 &#x1f304; 莫道桑榆晚&#xff0c;為霞尚滿天&#xff01; 文章目錄 &#x1f4d1;前言一. 約束概述二. 約束演示三. 外鍵約束3.1 介紹3.2 語法3.3 刪除/更新行為 &…

Mybatis - generator(自動生成)

1、生成數據庫數據 2、配置pom文件 這個plugin文件里有配置項和依賴以及版本號 修改configurationFile路徑為項目里存在的generatorConfig.xml文件&#xff0c;因為后續的配置都在這個文件中進行。 <plugin><groupId>org.mybatis.generator</groupId><…

Netty的InboundHandler 和OutboundHandler

一、InboundHandler 和OutboundHandler的區別 在Netty中&#xff0c;"inbound"表示來自外部來源&#xff08;如網絡連接&#xff09;的數據&#xff0c;而"outbound"則表示從應用程序發送到外部目標&#xff08;如網絡連接或其他服務&#xff09;的數據。…

Git——Upload your open store

0.default config ssh-keygen -t rsa #之后一路回車,當前目錄.ssh/下產生公私鑰 cat ~/.ssh/id_rsa.pub #復制公鑰到賬號 git config --global user.email account_email git config --global user.name account_name1. 上傳一個公開倉庫 查看當前分支&#xff1a; git branc…

MATLAB基于隱馬爾可夫模型-高斯混合模型-期望最大化的MR圖像分割

隱馬爾可夫模型是一種統計模型&#xff0c;它描述了馬爾可夫過程&#xff0c;隱馬爾可夫過程中包含隱變量&#xff0c;語音識別和詞性自動標注等一些領域常常使用隱馬爾可夫模型方法來處理。馬爾可夫過程是一類隨機過程&#xff0c;馬爾可夫鏈是它的原始模型&#xff0c;馬爾可…

GPT對話知識庫——FreeRTOS中寄存器BASEPRI的作用

提問模型&#xff1a;GPT-4-TURBO-PREVIEW 提問時間&#xff1a;2024.03.02 1&#xff0c;問&#xff1a; 舉例詳細說明寄存器BASEPRI在freertos中作用 1&#xff0c;答&#xff1a; 在使用FreeRTOS這樣的實時操作系統時&#xff0c;確保系統的實時性和響應能力至關重要。其中…

【C++那些事兒】深入理解C++類與對象:從概念到實踐(中)| 默認構造函數 | 拷貝構造函數 | 析構函數 | 運算符重載 | const成員函數

&#x1f4f7; 江池俊&#xff1a; 個人主頁 &#x1f525;個人專欄&#xff1a; ?數據結構冒險記 ?C那些事兒 &#x1f305; 有航道的人&#xff0c;再渺小也不會迷途。 文章目錄 1. 類的6個默認成員函數2. 構造函數2.1 概念2.2 特性 3. 析構函數3.1 概念3.2 特性 4. 拷貝…

國際視頻編解碼標準提案下載地址

H.266 相關提案下載地址&#xff1a;http://phenix.it-sudparis.eu/jvet/ 更新的地址&#xff1a;https://jvet-experts.org/ H.265 提案下載地址&#xff1a;http://phenix.int-evry.fr/jct/ 標準文檔下載地址&#xff1a;http://www.itu.int/rec/T-REC-H.265 H.264 提案下載…

QT多語言切換功能

一.目的 在做項目時&#xff0c;有時希望我們的程序可以在不同的國家使用&#xff0c;這樣最好的方式是一套程序能適應于多國語言。 Qt提供了這樣的功能&#xff0c;使得一套程序可以呈現出不同的語言界面。本文將介紹QT如何實現多語言&#xff0c;以中文和英文為例。 QT開發…

過于老舊的pytorch_ssim包 請從github下載源碼

有些冷門算法真的不要隨便pip&#xff0c;有可能下載到史前版本…最好還是找源代碼 汗 今天要用到SSIM損失函數&#xff0c;從網上簡單看了一下原理就想測試一下&#xff0c;偷了一下懶就直接在命令行輸入pip install pytorch_ssim了&#xff0c;結果報了一堆錯誤&#xff08;汗…