实现代码如下:
 
#include <QSplitter>
QSplitter *m_pSplitter;
 
 
 
-     m_pSplitter = new QSplitter(ui->frame_2);  
 
-     
 
-     m_pSplitter->setGeometry(ui->frame_2->x(),ui->frame_2->y(),ui->frame_2->window()->width(),ui->treeWidget->window()->height());  
 
-   
 
-     m_pSplitter->addWidget(ui->treeWidget);  
 
-   
 
-     QPalette palette;  
 
-     palette.setBrush(ui->frame_4->backgroundRole(),QBrush(QPixmap("./images/background_main.png")));  
 
-     ui->frame_4->setPalette(palette);  
 
-     ui->frame_4->setAutoFillBackground(true);  
 
-     m_pSplitter->addWidget(ui->frame_4);  
 
-   
 
-     m_pSplitter->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);  
 
-   
 
-     m_pSplitter->setStyleSheet("QSplitter::handle { background-color: grey }"); 
 
-   
 
-     m_pSplitter->setHandleWidth(1);      
 
-   
 
 
 
这样可以手动拖来改变窗体部件的宽度。
改变主窗体大小时,加入下面函数,可以自适应窗体:
 
- void MainWindow::paintEvent(QPaintEvent *)  
 
- {  
 
-     m_pSplitter->setGeometry(0,0,ui->frame_2->window()->width(),ui->treeWidget->window()->height());  
 
- }  
 
 
但想在分界线处加一个Button来实现自动缩放窗体部件,还不知道如何实现。
有一篇博文:http://www.cnblogs.com/appsucc/archive/2012/12/19/2825197.html
想实现那篇博文中的效果,却看不太明白,代码太残缺。
研究一下再记下详细笔记。
有人看懂那篇博文,知道如何实现用Button来自动伸缩滑动窗口的,希望可以与我交流下,谢谢!
http://blog.csdn.net/liukang325/article/details/23764949
QSplitter实现自由伸缩滑动窗口部件(要在m_pSplitter中加入frame_4之前,给frame_4设置样式;之后设置无效)
原文:http://www.cnblogs.com/findumars/p/7701051.html