QT 分割窗口,并用dialog填充分割的子窗口

网上很多QSplitter的例子都是分割完的子窗口带一个edit控件,list控件,可项目需要子窗口用已有dialog进行填充,并能自由切换,遇到最郁闷的问题是填充完后自定义的dialog不能充满整个分割子窗口,现记录下解决方案:


QSplitter* mainSplitter;
     QMainWindow * mainQw;

pFrm = new frmFiSetDlg();
    mainSplitter = new QSplitter(Qt::Horizontal);
        mainSplitter->addWidget(pFrm);
 
        mainQw = new QMainWindow(this);
        mainSplitter->addWidget(mainQw);
        mainSplitter->setStretchFactor(1, 1);
        setCentralWidget(mainSplitter);
        QSplitterHandle *splitterHandle = mainSplitter->handle(1);
        if(splitterHandle)
        {
            //Disable the Middle Line, it can't adjust.
            splitterHandle->setDisabled(true);
        }

m_pDlgObj = new frmMainDlg(mainQw)//需要进行切换的dialog

setWindowFlags(Qt::CustomizeWindowHint|Qt::FramelessWindowHint);//frmMainDlg构造函数中填加

//最重要的处理,让dialog填充满分割子窗口
if(m_pDlgObj != NULL && !m_pDlgObj->isHidden())
        {
            mainQw->takeCentralWidget();
            m_pDlgObj->hide();
        }

if (m_pDlgObj != NULL)
             {
                 mainQw->setCentralWidget(m_pDlgObj);
                 m_pDlgObj->show();
             }



 
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值