最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/C++?Qt?Tree與Tab組件實(shí)現(xiàn)分頁菜單功能

 更新時間:2021年12月03日 09:32:50   作者:Lyshark  
這篇文章主要介紹了C/C++?Qt?Tree與Tab組件實(shí)現(xiàn)分頁菜單功能,實(shí)現(xiàn)一個類似于樹形菜單欄的功能,當(dāng)用戶點(diǎn)擊菜單欄中的選項(xiàng)時則會跳轉(zhuǎn)到不同的頁面上,本文簡單給大家分享實(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)一個類似于樹形菜單欄的功能,當(dāng)用戶點(diǎn)擊菜單欄中的選項(xià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é)點(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)時,先判斷節(jié)點(diǎn)是哪一個,并自動將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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 簡介C++編程中的運(yùn)算符重載

    簡介C++編程中的運(yùn)算符重載

    這篇文章簡單介紹了C++編程中的運(yùn)算符重載,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • C++類和對象之多態(tài)詳解

    C++類和對象之多態(tài)詳解

    大家好,本篇文章主要講的是C++類和對象之多態(tài)詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • win10+VS2017+Cuda10.0環(huán)境配置詳解

    win10+VS2017+Cuda10.0環(huán)境配置詳解

    這篇文章主要介紹了win10+VS2017+Cuda10.0環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • C語言實(shí)現(xiàn)野指針的示例代碼

    C語言實(shí)現(xiàn)野指針的示例代碼

    本文詳細(xì)介紹了野指針的概念、產(chǎn)生原因及規(guī)避方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • C語言數(shù)據(jù)結(jié)構(gòu)時間復(fù)雜度及空間復(fù)雜度簡要分析

    C語言數(shù)據(jù)結(jié)構(gòu)時間復(fù)雜度及空間復(fù)雜度簡要分析

    我們在進(jìn)行編程時,往往會開發(fā)諸多的算法,那么我們怎么在那么多算法中找到最好的那個呢?本文主要介紹時間和空間復(fù)雜度概念及時間復(fù)雜度的求解,預(yù)祝讀者學(xué)習(xí)愉快
    2021-10-10
  • C++線程安全的隊(duì)列你了解嘛

    C++線程安全的隊(duì)列你了解嘛

    這篇文章主要為大家詳細(xì)介紹了C++線程安全的隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • VsCode搭建C語言運(yùn)行環(huán)境詳細(xì)過程及終端亂碼問題解決方案

    VsCode搭建C語言運(yùn)行環(huán)境詳細(xì)過程及終端亂碼問題解決方案

    這篇文章主要介紹了VsCode搭建C語言運(yùn)行環(huán)境以及終端亂碼問題解決,在VsCode中搭建C/C++運(yùn)行環(huán)境需要先安裝幾個插件,具體插件文中給大家詳細(xì)介紹,需要的朋友可以參考下
    2022-12-12
  • C++采用ring3讀取MBR實(shí)例

    C++采用ring3讀取MBR實(shí)例

    這篇文章主要介紹了C++采用ring3讀取MBR實(shí)例,可實(shí)現(xiàn)對硬盤的主引導(dǎo)記錄的讀取,非常具有實(shí)用價值,需要的朋友可以參考下
    2014-10-10
  • C語言中的typedef、#define、const特點(diǎn)和用法介紹

    C語言中的typedef、#define、const特點(diǎn)和用法介紹

    在C 語言中,typedef、#define和const都用于定義常量和簡化代碼,但它們的用途和工作方式有顯著區(qū)別,下面詳細(xì)講解這三者的特點(diǎn)和用法,感興趣的朋友一起看看吧
    2024-08-08
  • C++實(shí)現(xiàn)LeetCode(161.一個編輯距離)

    C++實(shí)現(xiàn)LeetCode(161.一個編輯距離)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(161.一個編輯距離),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評論

永平县| 肇源县| 颍上县| 渭南市| 多伦县| 二连浩特市| 嘉祥县| 苏尼特右旗| 崇仁县| 来安县| 河东区| 新野县| 漾濞| 酉阳| 合江县| 张家口市| 山丹县| 唐河县| 盐池县| 东山县| 宣威市| 瓦房店市| 巢湖市| 淮滨县| 新乡县| 开江县| 锦屏县| 阿图什市| 宜兰市| 尼木县| 子洲县| 康马县| 中方县| 漳州市| 循化| 泊头市| 淳化县| 静乐县| 南华县| 温州市| 普格县|