• QSplitter实现自由伸缩滑动窗口部件(要在m_pSplitter中加入frame_4之前,给frame_4设置样式;之后设置无效)


    实现代码如下:

    #include <QSplitter>
    QSplitter *m_pSplitter;
    [cpp] view plain copy
     
    1.     m_pSplitter = new QSplitter(ui->frame_2);  
    2.     //将Splitter放在UI的frame_2中;  
    3.     m_pSplitter->setGeometry(ui->frame_2->x(),ui->frame_2->y(),ui->frame_2->window()->width(),ui->treeWidget->window()->height());  
    4.   
    5.     m_pSplitter->addWidget(ui->treeWidget);  
    6.   
    7.     QPalette palette;  
    8.     palette.setBrush(ui->frame_4->backgroundRole(),QBrush(QPixmap("./images/background_main.png")));  
    9.     ui->frame_4->setPalette(palette);  
    10.     ui->frame_4->setAutoFillBackground(true);  
    11. //要在m_pSplitter中加入frame_4之前,给frame_4设置样式;之后设置无效;  
    12.     m_pSplitter->addWidget(ui->frame_4);  
    13.   
    14.     m_pSplitter->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);  
    15.   
    16.     m_pSplitter->setStyleSheet("QSplitter::handle { background-color: grey }"); //设置分界线的样式  
    17.   
    18.     m_pSplitter->setHandleWidth(1);      //设置分界线的宽度  
    19.   
    20. //    m_pSplitter->setStretchFactor(0, -2);  
    21. //    m_pSplitter->setStretchFactor(1, -4);  

    这样可以手动拖来改变窗体部件的宽度。

    改变主窗体大小时,加入下面函数,可以自适应窗体:

    [cpp] view plain copy
     
    1. void MainWindow::paintEvent(QPaintEvent *)  
    2. {  
    3.     m_pSplitter->setGeometry(0,0,ui->frame_2->window()->width(),ui->treeWidget->window()->height());  
    4. }  

    但想在分界线处加一个Button来实现自动缩放窗体部件,还不知道如何实现。

    有一篇博文:http://www.cnblogs.com/appsucc/archive/2012/12/19/2825197.html

    想实现那篇博文中的效果,却看不太明白,代码太残缺。

    研究一下再记下详细笔记。

    有人看懂那篇博文,知道如何实现用Button来自动伸缩滑动窗口的,希望可以与我交流下,谢谢!

    http://blog.csdn.net/liukang325/article/details/23764949

  • 相关阅读:
    hdu1003 最大子串和
    cf339d Xenia and Bit Operations
    A + B Problem II
    中国近代史纲要----王洪兵--2016年春季学期----中国海洋大学
    CodeForces 35D Animals
    CodeForces 558D
    Vanya and Brackets
    spfa
    hdu 1217 Arbitrage
    CodeForces 1A Theatre Square
  • 原文地址:https://www.cnblogs.com/findumars/p/7701051.html
Copyright © 2020-2023  润新知