ue5 創建多列StreeView的方法與理解

創建StreeView的多列樣式怎么就像是創建單行單列差不多?貌似就是在單行單列中加入了多列widget?

示例代碼

DetailTabWidget

#pragma once
#include "TreeViewItemBase.h"class SDetailTabWidget : public SCompoundWidget
{SLATE_BEGIN_ARGS(SDetailTabWidget){}SLATE_END_ARGS()void Construct(const FArguments& InArgs);private:TSharedPtr<SWidgetSwitcher> WidgetSwitcher;TSharedPtr<STreeView<TSharedRef<FTreeViewItemBase>>> TreeViewItem;TArray<TSharedRef<FTreeViewItemBase>> TreeViewSource;public:TSharedRef<class ITableRow> GenerateTreeViewRow(TSharedRef<FTreeViewItemBase> ItemBase, const TSharedRef< class STableViewBase >& TableViewBase);void OnGetChildren(TSharedRef<FTreeViewItemBase> ItemBase, TArray<TSharedRef<FTreeViewItemBase>>& OutChildren);void SetItemData();
};
#include "DetailTabWidget.h"#include "TreeViewItemBaseBool.h"
#include "Widgets/Layout/SWidgetSwitcher.h"void SDetailTabWidget::Construct(const FArguments& InArgs)
{ChildSlot[SAssignNew(WidgetSwitcher, SWidgetSwitcher)+SWidgetSwitcher::Slot().HAlign(HAlign_Center).VAlign(VAlign_Center)[SNew(STextBlock).Text(FText::FromString("This DetailTab Panel"))]+SWidgetSwitcher::Slot().HAlign(HAlign_Fill).VAlign(VAlign_Fill)[SAssignNew(TreeViewItem,STreeView<TSharedRef<FTreeViewItemBase>>).TreeItemsSource(&TreeViewSource)//委托,生成每一行,綁定自定義方法(事件),觸發時生成.OnGenerateRow(this, &SDetailTabWidget::GenerateTreeViewRow).OnGetChildren(this,&SDetailTabWidget::OnGetChildren).HeaderRow(SNew(SHeaderRow)+SHeaderRow::Column("Name").HeaderContentPadding(FMargin(0)).FillWidth(0.4f)[SNew(SBorder).Padding(FMargin(10,5,5,5))[SNew(STextBlock).Text(FText::FromString(TEXT("名 稱")))]]+SHeaderRow::Column("Value").HeaderContentPadding(FMargin(0)).FillWidth(0.4f)[SNew(SBorder).Padding(FMargin(10,5,5,5))[SNew(STextBlock).Text(FText::FromString(TEXT("屬 性")))]])]];SetItemData();
}TSharedRef<class ITableRow> SDetailTabWidget::GenerateTreeViewRow(TSharedRef<FTreeViewItemBase> ItemBase,const TSharedRef<class STableViewBase>& TableViewBase)
{return SNew(SMultiTableRow, TableViewBase,ItemBase);
}void SDetailTabWidget::OnGetChildren(TSharedRef<FTreeViewItemBase> ItemBase,TArray<TSharedRef<FTreeViewItemBase>>& OutChildren)
{ItemBase->Getchildren(OutChildren);
}void SDetailTabWidget::SetItemData()
{TSharedRef<FTreeViewItemBaseBool> BoolItem = MakeShareable(new FTreeViewItemBaseBool());TreeViewSource.Add(BoolItem);TreeViewItem->RequestTreeRefresh();WidgetSwitcher->SetActiveWidgetIndex(1);}

 TreeViewItemBase

#pragma once// Item
class FTreeViewItemBase : public TSharedFromThis<FTreeViewItemBase>
{
public:virtual TSharedRef<SWidget> MakeNameWidget() = 0;virtual TSharedRef<SWidget> MakeValueWidget() = 0;v

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

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

相關文章

Linux之yum詳解

—— 小 峰 編 程 目錄 1、Linux軟件的安裝方式 2、什么是yum 3、配置網絡yum源 4、yum命令 【語法】 【yum常用命令】 1、Linux軟件的安裝方式 在CentOS系統中&#xff0c;軟件管理方式通常有三種方式&#xff1a; rpm安裝 、 yum安裝 以及 編譯安裝 。 2、什么是yum…

lvgl運行機制分析

lv_timer_handler() 是 LVGL 的“心臟”&#xff1a;這個函數會依次做以下事情&#xff1a; 處理定時器&#xff08;如動畫、延遲回調&#xff09;。 讀取輸入設備&#xff08;如觸摸屏、按鍵的狀態&#xff09;。 刷新臟區域&#xff08;僅重繪屏幕上發生變化的區域&#xf…

達夢數據庫授權給某個用戶查詢其他指定用戶下所有表的權限

方法1&#xff1a; 新版本有一個數據庫參數 GRANT_SCHEMA&#xff0c;表示是否開啟授予和回收模式權限功能。0&#xff1a;否&#xff1b;1&#xff1a;是 此參數為靜態參數&#xff0c;默認是0&#xff0c;將改參數修改為1后&#xff0c;重啟數據庫生效。 將參數修改為1 S…

人大金倉國產數據庫與PostgreSQL

一、簡介 在前面項目中&#xff0c;我們使用若依前后端分離整合人大金倉&#xff0c;在后續開發過程中&#xff0c;我們經常因為各種”不適配“問題&#xff0c;但可以感覺得到大部分問題&#xff0c;將人大金倉視為postgreSQL就能去解決大部分問題。據了解&#xff0c;Kingba…

Python之參數星號(*)使用筆記

背景 在學習python時發現方法調用和方法定義會經常發現有帶星號的標記&#xff0c;為了弄明白是怎么使用的。特此做個筆記。 一、參數符號對比速查表 符號類使用場景作用描述示例無符號函數定義/調用普通位置參數或關鍵字參數.def func(a, b)*函數定義收集多余位置參數為元組…

使用haproxy實現MySQL服務器負載均衡

一、環境準備 主機名IP地址備注openEuler-1192.168.121.11mysql-server-1openEuler-2192.168.121.12mysql-server-2openEuler-3192.168.121.13clientRocky-1192.168.121.51haproxy 二、mysql-server配置 [rootopenEuler-1 ~]# yum install -y mariadb-server [rootopenEuler…

Python與Web3.py庫:構建去中心化應用的未來

Python與Web3.py庫&#xff1a;構建去中心化應用的未來 在區塊鏈的世界里&#xff0c;“去中心化”是最核心的理念之一&#xff0c;它賦予了用戶更多的控制權和自由&#xff0c;消除了傳統中心化系統中的單點故障和信任問題。而在這場技術革命中&#xff0c;Web3.0無疑是最受矚…

對“預訓練”的理解

預訓練有什么用 傳統的機器學習是偏數學的&#xff0c;對數據的量不做過多要求&#xff0c;而深度學習的項目通常是有大量的數據可供使用。 在平常的任務或者項目中&#xff0c;我們可能并沒有大量數據&#xff0c;只有少量數據&#xff0c;在這時我們就可以通過“借用”有大…

VMware Ubuntu 共享目錄

在VMware中掛載Ubuntu共享目錄需要以下步驟&#xff0c;分為設置共享文件夾和在Ubuntu中掛載兩部分&#xff1a; 一、VMware 設置共享文件夾 關閉Ubuntu虛擬機 在配置前&#xff0c;建議先關閉虛擬機&#xff08;若已運行需關閉&#xff0c;部分VMware版本支持熱添加&#xff0…

AF3 crop_chains函數解讀

AlphaFold3 feature_processing_multimer模塊的crop_chains函數的功能是對多條鏈的蛋白質結構預測任務中的MSA(多序列比對)特征和模板特征進行裁剪(cropping)。裁剪的目的是為了控制輸入模型的MSA序列數量和模板數量,以適應模型的輸入限制或優化計算效率。 源代碼: def…

Java基礎-數組,集合創建方式

Java 中 new 關鍵字的作用 在 Java 中&#xff0c;new 關鍵字用于 在堆內存中分配空間 并創建對象。 數組 和 集合 在 Java 中都是對象&#xff0c;因此必須使用 new 來創建實例。Java 和 C 之間的主要區別在于 內存管理 和 對象的創建方式。 Java 與 C 中數組 & 集合的創…

LeeCode題庫第三十九題

39.組合總和 項目場景&#xff1a; 給你一個 無重復元素 的整數數組 candidates 和一個目標整數 target &#xff0c;找出 candidates 中可以使數字和為目標數 target 的 所有 不同組合 &#xff0c;并以列表形式返回。你可以按 任意順序 返回這些組合。 candidates 中的 同…

大模型應用案例 | 大模型+金融運維,擎創攜手某證券創新運維能力新范式

一、當大模型遇上金融運維&#xff1a;一場讓告警處理“脫胎換骨”的變革 2022年底&#xff0c;ChatGPT的橫空出世讓AI技術徹底出圈&#xff1b;短短兩年后&#xff0c;大模型已悄然潛入金融行業的“心臟地帶”——運維系統。面對指數級暴增的告警信息、碎片化的處理流程&#…

【MongoDB】在Windows11下安裝與使用

官網下載鏈接&#xff1a;Download MongoDB Community Server 官方參考文檔&#xff1a;https://www.mongodb.com/zh-cn/docs/manual/tutorial/install-mongodb-on-windows/#std-label-install-mdb-community-windows 選擇custom類型&#xff0c;其他默認 注意&#xff0c;此選…

阿里云輕量級服務器通過寶塔安裝PgVector要點

設置環境變量&#xff1a; export PG_HOME/www/server/pgsql export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/www/server/pgsql/lib export PG_CONFIG/www/server/pgsql/bin/pg_config export PGDATA/www/server/pgsql/data PATH$PATH:$HOME/.local/bin:$HOME/bin:$PG_HOME/bin ali…

OpenSSL 基礎使用流程

理解 OpenSSL 的基礎使用流程是學習如何進行安全通信的關鍵&#xff0c;特別是在實現 SSL/TLS 連接時。以下是 OpenSSL 基礎使用流程的一個簡要總結&#xff0c;并附上一個簡單的示例代碼&#xff0c;幫助你理解如何通過 OpenSSL 建立一個基本的安全通信連接。 OpenSSL 基礎使…

什么是最終一致性,它對后端系統的意義是什么

最終一致性(Eventual Consistency)是分布式系統中的一種一致性模型。與傳統的強一致性模型不同,最終一致性并不要求系統在任何時刻都保持一致,而是保證在足夠的時間后,所有節點的數據最終會達到一致的狀態。換句話說,系統允許短時間內出現數據的不一致性,但最終會通過某…

SQL命令詳解之增刪改數據

目錄 簡介 1 添加數據 1.1 基礎語法 1.2 SQL 練習 2 修改數據 2.1 基礎語法 2.2 SQL 練習 ?3 刪除數據 3.1 基礎語法 3.2 SQL 練習 總結 簡介 在數據庫操作中&#xff0c;增、刪、改是最基礎的操作&#xff0c;它們通常對應著SQL中的INSERT、DELETE和UPDATE命令。…

std::allocator_traits 能做但 std::allocator 不能的事情

&#x1f31f; std::allocator_traits 能做但 std::allocator 不能的事情 1?? 適配自定義分配器 假設你要實現一個內存池 MyAllocator&#xff0c;而 STL 容器默認使用的是 std::allocator。 如果你希望 STL 容器可以使用你的 MyAllocator&#xff0c;你 不能直接用 std::a…

QT——c++界面編程庫

非界面編程 QT編譯的時候&#xff0c;依賴于 .pro 配置文件&#xff1a; SOURCES: 所有需要參與編譯的 .cpp 源文件 HEADERS:所有需要參與編譯的.h 頭文件 QT&#xff1a;所有需要參與編譯的 QT函數庫 .pro文件一旦修改&#xff0c;注意需要鍵盤按 ctrls 才能加載最新的配置文…