QT实现Home框架的两种方式

在触摸屏开发QT界面一般都是一个Home页面,然后button触发进入子页面显示,下面介绍这个home框架实现的两种方式:

1.方式一:用stackedWidget实现

(1)StackedWidget控件在Qt框架中是一个用于管理多个子窗口或页面的堆叠式容器。这个控件允许你在一个固定区域内显示多个子窗口,但同时只显示其中一个子窗口,其他子窗口则被堆叠在后面。

(2)代码

#include "mainwindow.h"

#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

    ui->stackedWidget->addWidget(&homeWnd);

    ui->stackedWidget->addWidget(&monitorWnd);

    ui->stackedWidget->addWidget(&settringWnd);

    ui->stackedWidget->addWidget(&aboutWnd);

    btnGroup.addButton(ui->btnHome, 0);

    btnGroup.addButton(ui->btnMonitor, 1);

    btnGroup.addButton(ui->btnSettring, 2);

    btnGroup.addButton(ui->btnAbout, 3);

    connect(&btnGroup, static_cast<void (QButtonGroup::*)(int)

            >(&QButtonGroup::buttonClicked),

            ui->stackedWidget, &QStackedWidget::setCurrentIndex);

    // 设置默认选中的页面

    btnGroup.button(0)->setChecked(true);

    ui->stackedWidget->setCurrentIndex(0);

}

(3)UI界面

2.方法二:用Frame控件实现

(1)Frame控件是一个用于包含其他控件的容器控件,主要用于创建分组框或边框效果。Frame控件继承自QWidget类,因此它具有所有QWidget的属性和方法。

(2)代码

#include "widget.h"

#include "ui_widget.h"

Widget::Widget(QWidget *parent)

    : QWidget(parent)

    , ui(new Ui::Widget)

{

    ui->setupUi(this);

    pconnect = new connect1(ui->frame);

    ptest  = new test(ui->frame);

    // ptest  = new test(this);  //全屏

    ptest->hide();

}

Widget::~Widget()

{

    delete ui;

}

void Widget::on_pushButton_clicked()

{

    pconnect->show();

    ptest->hide();

}

void Widget::on_pushButton_2_clicked()

{

    pconnect->hide();

    ptest->show();

}

(3)UI界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI+程序员在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值