C/C++?Qt?Tree與Tab組件實現(xiàn)分頁菜單功能
雖然TreeWidget
組件可以實現(xiàn)多節(jié)點的增刪改查,但多節(jié)點操作顯然很麻煩,在一般的應用場景中基本上只使用一層結(jié)構(gòu)即可解決大部分開發(fā)問題,TreeWidget
組件通常可配合TabWidget
組件,實現(xiàn)一個類似于樹形菜單欄的功能,當用戶點擊菜單欄中的選項時則會跳轉(zhuǎn)到不同的頁面上。
首先在Qt的Ui編輯界面左側(cè)加入TreeWidget
組件,右側(cè)加入TabWidget
組件,將頁面中的TabWidget
組件增加指定頁,效果如下。
在MainWindow::MainWindow
主函數(shù)中我們對其中的兩個組件進行初始化操作。
#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
組件的右鍵點擊事件,當右鍵點擊節(jié)點時,先判斷節(jié)點是哪一個,并自動將TabWidget
組件切換到指定的頁上。
// 當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
到此這篇關(guān)于C/C++?Qt?Tree與Tab組件實現(xiàn)分頁菜單的文章就介紹到這了,更多相關(guān)C/C++?Qt?Tree與Tab組件實現(xiàn)分頁菜單內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言設(shè)計圖書登記系統(tǒng)與停車場管理系統(tǒng)的實例分享
這篇文章主要介紹了C語言設(shè)計圖書登記系統(tǒng)與停車場管理系統(tǒng)的實例分享,重在以最簡單的一些需求來展示管理系統(tǒng)的設(shè)計思路,需要的朋友可以參考下2016-06-06C++數(shù)據(jù)結(jié)構(gòu)之單鏈表
這篇文章主要介紹了C++數(shù)據(jù)結(jié)構(gòu)之單鏈表,鏈表是由一個個結(jié)點鏈結(jié)成的。結(jié)點包括數(shù)據(jù)域和指針域兩部分,數(shù)據(jù)域用來存儲數(shù)據(jù)元素的信息,指針域用來存儲下一個結(jié)點的地址,更詳細內(nèi)容請需要的小伙伴參考下面文章內(nèi)容2022-01-01淺談C++基類的析構(gòu)函數(shù)為虛函數(shù)
本文重點:應該為多態(tài)基類聲明虛析構(gòu)器。一旦一個類包含虛函數(shù),它就應該包含一個虛析構(gòu)器。如果一個類不用作基類或者不需具有多態(tài)性,便不應該為它聲明虛析構(gòu)器。2015-10-10C++ 中實現(xiàn)把EXCEL的數(shù)據(jù)導入數(shù)據(jù)庫(ACCESS、MSSQL等)實例代碼
這篇文章主要介紹了C++ 中實現(xiàn)把EXCEL的數(shù)據(jù)導入數(shù)據(jù)庫(ACCESS、MSSQL等)實例代碼的相關(guān)資料,需要的朋友可以參考下2017-04-04c++11中關(guān)于std::thread的join的詳解
這篇文章主要介紹了c++11中關(guān)于std::thread的join詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03