C/C++?Qt?Tree與Tab組件實(shí)現(xiàn)分頁菜單功能
雖然TreeWidget
組件可以實(shí)現(xiàn)多節(jié)點(diǎn)的增刪改查,但多節(jié)點(diǎn)操作顯然很麻煩,在一般的應(yīng)用場景中基本上只使用一層結(jié)構(gòu)即可解決大部分開發(fā)問題,TreeWidget
組件通??膳浜?code>TabWidget組件,實(shí)現(xiàn)一個(gè)類似于樹形菜單欄的功能,當(dāng)用戶點(diǎn)擊菜單欄中的選項(xiàng)時(shí)則會(huì)跳轉(zhuǎn)到不同的頁面上。
首先在Qt的Ui編輯界面左側(cè)加入TreeWidget
組件,右側(cè)加入TabWidget
組件,將頁面中的TabWidget
組件增加指定頁,效果如下。
在MainWindow::MainWindow
主函數(shù)中我們對(duì)其中的兩個(gè)組件進(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é)點(diǎn) QTreeWidgetItem *system_setup = new QTreeWidgetItem(ui->treeWidget,QStringList(QString("系統(tǒng)位置"))); system_setup->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate); // 給父節(jié)點(diǎn)添加子節(jié)點(diǎn) 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é)點(diǎn) 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
組件的右鍵點(diǎn)擊事件,當(dāng)右鍵點(diǎn)擊節(jié)點(diǎn)時(shí),先判斷節(jié)點(diǎn)是哪一個(gè),并自動(dòng)將TabWidget
組件切換到指定的頁上。
// 當(dāng)treeWidget空間雙擊后根據(jù)不同的菜單項(xiàng)選擇不同的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); } }
代碼實(shí)現(xiàn)起來很簡單,具體實(shí)現(xiàn)效果如下所示:
文章出處:https://www.cnblogs.com/lyshark
到此這篇關(guān)于C/C++?Qt?Tree與Tab組件實(shí)現(xiàn)分頁菜單的文章就介紹到這了,更多相關(guān)C/C++?Qt?Tree與Tab組件實(shí)現(xiàn)分頁菜單內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++第11版本中的一些強(qiáng)大的新特性小結(jié)
這篇文章主要介紹了C++第11版本中的一些強(qiáng)大的新特性小結(jié),需要的朋友可以參考下2015-12-12C語言設(shè)計(jì)圖書登記系統(tǒng)與停車場管理系統(tǒng)的實(shí)例分享
這篇文章主要介紹了C語言設(shè)計(jì)圖書登記系統(tǒng)與停車場管理系統(tǒng)的實(shí)例分享,重在以最簡單的一些需求來展示管理系統(tǒng)的設(shè)計(jì)思路,需要的朋友可以參考下2016-06-06C++數(shù)據(jù)結(jié)構(gòu)之單鏈表
這篇文章主要介紹了C++數(shù)據(jù)結(jié)構(gòu)之單鏈表,鏈表是由一個(gè)個(gè)結(jié)點(diǎn)鏈結(jié)成的。結(jié)點(diǎn)包括數(shù)據(jù)域和指針域兩部分,數(shù)據(jù)域用來存儲(chǔ)數(shù)據(jù)元素的信息,指針域用來存儲(chǔ)下一個(gè)結(jié)點(diǎn)的地址,更詳細(xì)內(nèi)容請(qǐng)需要的小伙伴參考下面文章內(nèi)容2022-01-01淺談C++基類的析構(gòu)函數(shù)為虛函數(shù)
本文重點(diǎn):應(yīng)該為多態(tài)基類聲明虛析構(gòu)器。一旦一個(gè)類包含虛函數(shù),它就應(yīng)該包含一個(gè)虛析構(gòu)器。如果一個(gè)類不用作基類或者不需具有多態(tài)性,便不應(yīng)該為它聲明虛析構(gòu)器。2015-10-10C語言進(jìn)階數(shù)據(jù)的存儲(chǔ)機(jī)制完整版
這篇文章主要為大家完整的介紹了C語言進(jìn)階數(shù)據(jù)的存儲(chǔ)機(jī)制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-02-02C++ 中實(shí)現(xiàn)把EXCEL的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(ACCESS、MSSQL等)實(shí)例代碼
這篇文章主要介紹了C++ 中實(shí)現(xiàn)把EXCEL的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(ACCESS、MSSQL等)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-04-04c++11中關(guān)于std::thread的join的詳解
這篇文章主要介紹了c++11中關(guān)于std::thread的join詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03