实现代码如下:

#include <QSplitter>
QSplitter *m_pSplitter;
  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. m_pSplitter->addWidget(ui->treeWidget);
  5. QPalette palette;
  6. palette.setBrush(ui->frame_4->backgroundRole(),QBrush(QPixmap("./images/background_main.png")));
  7. ui->frame_4->setPalette(palette);
  8. ui->frame_4->setAutoFillBackground(true);
  9. //要在m_pSplitter中加入frame_4之前,给frame_4设置样式;之后设置无效;
  10. m_pSplitter->addWidget(ui->frame_4);
  11. m_pSplitter->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
  12. m_pSplitter->setStyleSheet("QSplitter::handle { background-color: grey }"); //设置分界线的样式
  13. m_pSplitter->setHandleWidth(1);      //设置分界线的宽度
  14. //    m_pSplitter->setStretchFactor(0, -2);
  15. //    m_pSplitter->setStretchFactor(1, -4);

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

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

  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

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

  1. Qt浅谈之四十五QSplitter实现自由伸缩滑动窗口

    一.简介 最近看到一篇Qt实现伸缩滑动的窗口的文章,但其代码不完整.便在此重新书写了完整的代码,并开源出来.窗口的中央有滑动条可以动态改变子窗口的大小,隐藏的按钮可以快速伸缩子窗口.其效果图如下: 二 ...

  2. Qt入门(19)——自定义窗口部件

    我们介绍可以画自己的第一个自定义窗口部件.我们也加入了一个有用的键盘接口.我们添加了一个槽:setRange().        void setRange( int minVal, int maxV ...

  3. C++框架_之Qt的窗口部件系统的详解-上

    C++框架_之Qt的窗口部件系统的详解-上 第一部分概述 第一次建立helloworld程序时,曾看到Qt Creator提供的默认基类只有QMainWindow.QWidget和QDialog三种. ...

  4. pipelinedb--流、滑动窗口测试

    https://blog.csdn.net/liuxiangke0210/article/details/74010951 https://yq.aliyun.com/articles/166 一.p ...

  5. TCP滑动窗口协议

    TCP的首部中​有一个很重要的字段就是16位长的窗口大小,它出现在每一个TCP数据报中,配合32位的确认序号,用于向对端通告本地socket的接收窗口大小.也就是说,如果本地socket发送一个TCP ...

  6. 洛谷P1886滑动窗口

    题目传送门 理解题意:给定一个数列和窗口范围k,求依次向右移动窗口时每次窗口内的最大和最小值. 没什么思维难度,一边扫过去,用两个数组maxx和minn记录每个窗口内的最大最小值,移动过程中用两个变量 ...

  7. TCP之四:TCP 滑动窗口协议 详解

    滑动窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口:同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口.发送窗口和接收窗口的序号的 ...

  8. AcWing 154. 滑动窗口 单调队列

    地址 https://www.acwing.com/problem/content/description/156/ 输入格式 输入包含两行. 第一行包含两个整数n和k,分别代表数组长度和滑动窗口的长 ...

  9. 计算机网络(八),TCP的滑动窗口

    目录 1.RTT和RTO 2.TCP使用滑动窗口做流量控制与乱序重排 3.滑动窗口的基本原理 八.TCP的滑动窗口 TCP头部中的窗口字段:滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端 ...

随机推荐

  1. 使用vue-cil搭建项目

    原文: 简书原文:https://www.jianshu.com/p/1af9b72cf86e 大纲 1.安装NodeJs 2.安装vue-cli 3.创建项目 4.启动项目 5.打包项目 6.项目实 ...

  2. win32中SetCapture 和 ReleaseCapture的使用(查一下在VCL中的使用)

    最近在用win32写<visual C++经典游戏程序设计>中的扫雷游戏,在写到鼠标点击雷区的时候用到了SetCapture,和ReleaseCapture这对系统函数. 那么为什么需要用 ...

  3. word多出空标题,样式是列出段落 - -显示时,选择不勾选“隐藏文字”

    word多出空标题,样式是列出段落

  4. 【u124】环状最大两段子段和

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 给出一段环状序列,即认为A[1]和A[N]是相邻的,选出其中连续不重叠且非空的两段使得这两段和最大. ...

  5. Berkeley DB基础教程 分类: H3_NUTCH 2014-05-29 15:21 2212人阅读 评论(0) 收藏

    一.Berkeley DB的介绍 (1)Berkeley DB是一个嵌入式数据库,它适合于管理海量的.简单的数据.如Google使用其来保存账户信息,Heritrix用其来保存froniter. (2 ...

  6. sublim课程2 sublim编辑器的使用(敲代码的时候把这个放旁边用)

    sublim课程2   sublim编辑器的使用(敲代码的时候把这个放旁边用) 一.总结 一句话总结:不必一次记住所有,不可能也得不偿失,先记住常用,慢慢来.(敲代码的时候把这个放旁边用,一下子就熟了 ...

  7. Android 实现限制EditText输入文字的数量

    前段时间比较忙 没来的及时分享出来.需求是这样的要求用户只能输入12个字符或者6位中文的数据:作为一个菜鸟遇到这样的问题第一反应就是 Android:maxLength="12"这 ...

  8. OK6410开发板系统安装---嵌入式回归第二篇

    1. 嵌入式系统须要被安装到开发板的nandflash上 或者 SD卡上 2. 须要安装的嵌入式Linux系统能够分三个部分 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...

  9. android使用Gson来解析json

    Gson是一种对象的解析json,非常好用,介绍一个站点http://json.parser.online.fr/能够帮我们看一个字符串是不是Json 对于Json文件 { "id" ...

  10. PHP接口类interface使用方法

    PHP同大多数的面向对象语言一样,并不支持多重继承.少数支持多重继承的语言中最著名的就是C++和Smalltalk.如果需要实现多重继承功能,在PHP中,可以通过接口,它是PHP解决多重继承问题的方法 ...