QT堆栈窗体之QStackedWidget

QStackedWidget

目录

要实现一个窗口位置,触发式更换Widget,可以采用堆栈窗体QStackedWidget。
起初,刚接触QT编程时,想到的方法是setParent() 这个函数,通过设置父窗体来实现同一位置显示不同界面。后来,发现QStackedWidget这个东东,问题得到了完美解决。

代码块

列出部分代码,如下:

void ClientWidget::layoutClientWgt()
{
    m_pStackWgt = new QStackedWidget;

    m_pWgt0  = new QWidget;
    m_pWgt1  = new QWidget;
    m_pWgt2  = new QWidget;
    m_pWgt3  = new QWidget;
    m_pWgt4  = new QWidget;
    m_pWgt5  = new QWidget;

    m_pStackWgt->addWidget(m_pWgt0);
    m_pStackWgt->addWidget(m_pWgt1);
    m_pStackWgt->addWidget(m_pWgt2);
    m_pStackWgt->addWidget(m_pWgt3);
    m_pStackWgt->addWidget(m_pWgt4);
    m_pStackWgt->addWidget(m_pWgt5);

    //将StackWidget放到ClientWidget中
    QGridLayout *gridlayout = new QGridLayout;
    gridlayout->addWidget(m_pStackWgt);
    gridlayout->setMargin(0);
    gridlayout->setSpacing(0);
    gridlayout->setContentsMargins(0,0,0,0);
    this->setLayout(gridlayout);

    m_pStackWgt->setCurrentIndex(0);
}

void ClientWidget::slotWgt1Show()
{
    m_pStackWgt->setCurrentIndex(1);
}

通过addWidget将QWidget或其子类添加到堆栈窗体对象中去,它们按照添加顺序排列,再通过响应槽函数,调用setCurrentIndex(int),来设置将某个界面显示在顶层。

典型应用场景

  • 通过按钮触发,连接按钮的click()信号与自定义槽函数。
  • 结合QListWidget,通过点击item触发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值