Qt多页面切换组件

1、多页面切换组件

多页面的切换在我们日常的软件使用中是十分广泛的,有着很好的便捷性,下面一张图片展示了多页面的使用的便捷性

可以看到用鼠标点击不同的标题时会出现不同的页面内容

A.Qt中的多页面切换组件QTabWidget

Qt中为多页面切换的实现提供了一个专门的类QTabWidget,它可以实现能够在同一个窗口中自由切换不同页面的内容,并且是一个容器类型的组件,提供友好的页面切换方式,在QTabWidget类中提供了很多在工程中实用的函数,比如设置Tab标签的位置void  setTabPosition(TabPosition)(North South West East),设置Tab的外观 void  setTabShape(),设置Tab的可关闭模式void setTabsClosable()等各种在实际应用中用的较多的函数,具体的函数可以在Qt助手进行查询。

QTabWidget的使用方式–在Qt中的应用程序中创建QTabWidget的对象,将其他的QWiget对象加入该对象中(在QTabWidget对象中加入一个组件将生成一个新的页面,同时QTabWidget对象每次只能加入一个QWiget对象),但是在实际的使用中每个页面会有多个的子组件,这时应该在工程中创建容器类型的组建对象,将多个子组件在容器对象中布局,最后将容器对象加入QTabWidget中生成新的页面.

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

1.能够在同一窗口中自由切换不同页面的内容

2.是一个容器类型的组件,同时提供友好的页面切换方式

 

QTabWidget的使用方式

1.在应用程序中创建QTabWidget的对象

2.将其他QWidget对象加入该对象中

实现过程

1.创建容器类的组件对象

2.将多个子组件在容器对象中布局

3.将容器对象加入QTabWidget中生成新的页面

 

QTabWidget组件的基本用法

 

B.QTabWidget组件的高级用法

1.设置Tab标签的位置

2.设置Tab的外观

3.设置Tab的可关闭模式

QTabWidget组件预定义的信号

void currentChange(int index)–当前显示的页面发送变化,index为新页面下标

void tabCloseRequsted(int index)–位置为index页面的关闭按钮被点击发出关闭请求

代码示例

Widget.h
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTableWidget>

class Widget : public QWidget
{
    Q_OBJECT

    QTabWidget m_tabWidget;
protected slots:
    void onTabCurrentChanged(int index);
    void onTabCloseRequested(int index);
public:
    Widget(QWidget *parent = 0);
    ~Widget();
};

#endif // WIDGET_H

Widget.cpp
#include "Widget.h"
#include <QPlainTextEdit>
#include <QLabel>
#include <QPushButton>
#include <QVBoxLayout>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    //QTabWidget的基本设置
    m_tabWidget.setParent(this);
    m_tabWidget.move(10, 10);
    m_tabWidget.resize(200, 200);
    m_tabWidget.setTabPosition(QTabWidget::North);
    m_tabWidget.setTabShape(QTabWidget::Triangular);
    m_tabWidget.setTabsClosable(false);

    QPlainTextEdit* edit = new QPlainTextEdit(&m_tabWidget);
    edit->insertPlainText("页面1");

    m_tabWidget.addTab(edit, "1st");

    QWidget* widget = new QWidget(&m_tabWidget);
    QVBoxLayout* layout = new QVBoxLayout();
    QLabel* lbl = new QLabel(widget);
    QPushButton* btn = new QPushButton(widget);

    lbl->setText("页面2");
    lbl->setAlignment(Qt::AlignCenter);

    btn->setText("页面2");

    layout->addWidget(lbl);
    layout->addWidget(btn);

    widget->setLayout(layout);

    m_tabWidget.addTab(widget, "2nd");

    m_tabWidget.setCurrentIndex(1);

    connect(&m_tabWidget, SIGNAL(currentChanged(int)), this, SLOT(onTabCurrentChanged(int)));
    connect(&m_tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(onTabCloseRequested(int)));
}

void Widget::onTabCurrentChanged(int index)
{
    qDebug() << "Page change to: " << index;
}

void Widget::onTabCloseRequested(int index)
{
    m_tabWidget.removeTab(index);
}

Widget::~Widget()
{

}

运行的结果如图所示

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓ 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt是一种跨平台的C++应用程序开发框架,提供丰富的组件和工具来创建图形用户界面。要实现Qt中点击树状导航栏切换界面,可以按照以下步骤进行: 1. 创建一个主窗口(MainWindow)作为应用程序的主界面。 2. 在主窗口上添加一个树状导航栏控件(QTreeWidget),用于显示导航栏的树状结构。 3. 建立各个导航项对应的界面(QWidget)。 4. 将每个导航项与对应的界面进行关联。 在点击导航栏的树状节点时,触发对应的槽函数,并在槽函数中进行界面切换的操作。具体步骤如下: 1. 构建树状导航栏:使用QTreeWidget的addItem函数逐个添加树状节点,为每个节点设置文本和关联的数据(可以使用自定义的数据结构)。 2. 建立界面页面:创建每个导航项对应的界面页面,可以使用QWidget或其他容器控件作为容器。 3. 添加界面页面:将每个界面页面添加到主窗口的布局中,可以使用QStackedLayout或其他适合的布局管理器。 4. 连接信号与槽:使用QObject的connect函数将树状导航栏的itemClicked信号与相应的槽函数进行连接。 5. 实现槽函数:在槽函数中获取当前点击的树状节点,并根据节点所关联的数据选择对应的界面页面,使用QStackedLayout的setCurrentIndex函数可以方便地切换界面。 通过以上步骤,点击树状导航栏的节点时,可以实现界面的切换。根据节点的关联数据,选择对应的界面进行展示,从而实现树状导航栏点击切换界面的功能。 ### 回答2: QT是一种流行的跨平台应用开发框架,它提供了丰富的界面设计工具和功能组件,可以方便地创建各种类型的应用程序。 在QT中,实现树状导航栏点击切换界面的效果可以通过以下步骤来完成: 1. 创建树状导航栏:使用QT提供的控件,如QTreeWidget或QTreeView,来创建树状导航栏。可以根据需要自定义树状导航栏的样式和布局。 2. 设置导航栏项:添加导航栏的项,每个项表示一个界面或一个功能模块。可以使用QTreeWidgetItem类或自定义的数据结构来表示项,并将其添加到树状导航栏中。 3. 响应项的点击事件:连接树状导航栏的itemClicked()信号到槽函数,当用户点击某个项时,会触发该信号,并调用相应的槽函数。槽函数可以从点击的项中获取相关信息,如界面的标识符或索引。 4. 切换界面:根据点击的项获取的信息,在槽函数中执行相应的逻辑来切换界面。可以使用QT提供的界面切换机制,如QStackedWidget或QTabWidget,或者通过隐藏和显示不同的窗口来实现界面的切换。 总之,通过创建树状导航栏、设置导航栏项、响应点击事件和切换界面,可以实现QT树状导航栏点击切换界面的效果。具体的实现方式可以根据项目需求和个人喜好进行调整和优化。 ### 回答3: Qt是一种跨平台的图形用户界面开发框架,提供了丰富的界面设计和交互功能,具有很高的灵活性和可扩展性。树状导航栏是在界面中常见的一种导航方式,可以让用户快速切换界面内容。 要实现树状导航栏点击切换界面的功能,首先需要创建一个树状结构的导航栏,可以使用QtQTreeWidget或QTreeView来实现。可以通过添加树节点的方式来构建导航栏的结构,每个节点代表一个界面。 当用户点击导航栏的某个节点时,需要连接相应的信号和槽函数。可以使用Qt的信号和槽机制,将节点的点击事件与切换界面的函数进行连接。在槽函数中,可以根据用户点击的节点获取到相应的界面,并在界面中进行显示。 切换界面的方式有多种,可以使用QStackedWidget来管理多个界面,通过setCurrentIndex函数来切换界面的索引。也可以使用QTabWidget来实现,将每个节点对应的界面放在不同的标签页中,通过setCurrentIndex或setCurrentWidget函数切换标签页来实现界面的切换。 在界面切换过程中,可以根据需要进行一些额外的操作,例如加载数据或进行界面的初始化工作。可以在槽函数中添加相应的代码来完成这些操作。 总的来说,实现Qt树状导航栏点击切换界面的功能,主要涉及到创建导航栏、连接信号和槽函数以及切换界面的操作。通过合理的设计和编码,我们可以方便地实现这一功能,提供用户友好的界面导航体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值