您的位置:首页 > 编程语言 > Qt开发

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

2017-03-17 16:27 351 查看
网上很多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();
     }

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: