網(wǎng)站首頁 編程語言 正文
雖然TreeWidget
組件可以實現(xiàn)多節(jié)點的增刪改查,但多節(jié)點操作顯然很麻煩,在一般的應(yīng)用場景中基本上只使用一層結(jié)構(gòu)即可解決大部分開發(fā)問題,TreeWidget
組件通常可配合TabWidget
組件,實現(xiàn)一個類似于樹形菜單欄的功能,當(dāng)用戶點擊菜單欄中的選項時則會跳轉(zhuǎn)到不同的頁面上。
首先在Qt的Ui編輯界面左側(cè)加入TreeWidget
組件,右側(cè)加入TabWidget
組件,將頁面中的TabWidget
組件增加指定頁,效果如下。
在MainWindow::MainWindow
主函數(shù)中我們對其中的兩個組件進(jìn)行初始化操作。
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QStyleFactory> MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) { ui->setupUi(this); ui->treeWidget->clear(); ui->treeWidget->setColumnCount(1); ui->treeWidget->setHeaderHidden(true); ui->tabWidget->tabBar()->hide(); // 增加線條 ui->treeWidget->setStyle(QStyleFactory::create("windows")); // ---------------------------------------------------------- // By: LyShark // 創(chuàng)建 [系統(tǒng)設(shè)置] 父節(jié)點 QTreeWidgetItem *system_setup = new QTreeWidgetItem(ui->treeWidget,QStringList(QString("系統(tǒng)位置"))); system_setup->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate); // 給父節(jié)點添加子節(jié)點 QTreeWidgetItem *system_setup_child_node_1 = new QTreeWidgetItem(system_setup); system_setup_child_node_1->setText(0,"修改密碼"); QTreeWidgetItem *system_setup_child_node_2 = new QTreeWidgetItem(system_setup); system_setup_child_node_2->setText(0,"設(shè)置菜單"); // ---------------------------------------------------------- // https://www.cnblogs.com/lyshark // 創(chuàng)建 [頁面布局] 父節(jié)點 QTreeWidgetItem *page_layout = new QTreeWidgetItem(ui->treeWidget,QStringList(QString("頁面布局"))); page_layout->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate); QTreeWidgetItem *page_layout_clild_1 = new QTreeWidgetItem(page_layout); page_layout_clild_1->setText(0,"頁面配置"); QTreeWidgetItem *page_layout_clild_2 = new QTreeWidgetItem(page_layout); page_layout_clild_2->setText(0,"頁面參數(shù)"); ui->treeWidget->expandAll(); } MainWindow::~MainWindow() { delete ui; }
接著增加TreeWidget
組件的右鍵點擊事件,當(dāng)右鍵點擊節(jié)點時,先判斷節(jié)點是哪一個,并自動將TabWidget
組件切換到指定的頁上。
// 當(dāng)treeWidget空間雙擊后根據(jù)不同的菜單項選擇不同的TabView頁 void MainWindow::on_treeWidget_itemDoubleClicked(QTreeWidgetItem *item, int column) { QString str = item->text(column); if(str == "修改密碼") { ui->tabWidget->setCurrentIndex(0); } if(str == "設(shè)置菜單") { ui->tabWidget->setCurrentIndex(1); } if(str == "頁面配置") { ui->tabWidget->setCurrentIndex(2); } if(str == "頁面參數(shù)") { ui->tabWidget->setCurrentIndex(3); } }
代碼實現(xiàn)起來很簡單,具體實現(xiàn)效果如下所示:
原文鏈接:https://www.cnblogs.com/LyShark/p/15623844.html
相關(guān)推薦
- 2022-10-08 C#中Timer實現(xiàn)Tick使用精度的問題_C#教程
- 2023-03-15 Docker網(wǎng)絡(luò)配置及部署SpringCloud項目詳解_docker
- 2022-03-23 Linux和GNU系統(tǒng)的關(guān)系詳解_Linux
- 2022-08-04 Android開發(fā)EditText禁止輸入監(jiān)聽及InputFilter字符過濾_Android
- 2022-05-28 Python庫AutoTS一行代碼得到最強時序基線_python
- 2023-01-02 Android?數(shù)據(jù)結(jié)構(gòu)全面總結(jié)分析_Android
- 2022-10-04 goland?-sync/atomic原子操作小結(jié)_Golang
- 2023-05-20 Kotlin作用域函數(shù)使用示例詳細(xì)介紹_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支