转载来自: http://blog.sina.com.cn/s/blog_4b5039210100h3ih.html

分割窗口在应用程序中经常用到,它可以灵活分布窗口布局,经常用于类似文件资源管理器的窗口设计中。

QSplitter是用来分割窗口的

如下代码:

 # -*- coding: utf-8 -*-
from PyQt4 import QtCore,QtGui
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
QtCore.QTextCodec.setCodecForTr(QtCore.QTextCodec.codecForName("utf8"))
class Csplitter(QtGui.QMainWindow):
def __init__(self,parent=None):
super(Csplitter,self).__init__(parent)
self.resize(400,400)
self.setWindowTitle('Pyqt Qsplitter')
self.textedit = QTextEdit()
self.textedit.setText("This is a TextEdit!")
self.listwidget = QListWidget()
self.listwidget.addItem("This is a \nListWidget!")
self.listwidget.addItem("aaaaaaaaaaaaaaa")
self.treewidget = QTreeWidget()
self.treewidget.setHeaderLabels(['This','is','a','TreeWidgets!'])
splitter = QSplitter(self)
splitter.addWidget(self.textedit)
splitter.addWidget(self.listwidget)
splitter.addWidget(self.treewidget)
splitter.setOrientation(Qt.Vertical) # Qt.Vertical 垂直 Qt.Horizontal 水平
self.setCentralWidget(splitter) if __name__ == '__main__':
app= QtGui.QApplication(sys.argv)
main = Csplitter()
main.show()
sys.exit(app.exec_())

效果:

QmainWindow上面有三个widget,一个TextEdit,一个ListWidget,一个TreeWidget,要让他们分占窗口,并且鼠标放到两个widget的边界,还可以拖拽来改变widget的大小

我们创建了三个widget以后,我们通过创建一个Qsplitter(parent),注意它的参数此处是self,也就是我们的MainWindow。
然后把三个widget通过addwidget方法加到Qsplitter上,如果我们不调用setOrientation(Qt.Vertical)的话,三个控件默认是水平摆放的,这里我们调用了,变为了垂直摆放,最后把splitter放到了MainWindow上。
另外Qsplitter还有别的很多methods。
Qsplitter.insertWidget(self,int index,Qwidget widget)在index序号处插入一个widget。
Qsplitter.indexOf(self,Qwidget widget)可以得到一个widget的index。
当然如果要隐藏某一个widget,可以调用hide()方法,要显示可以调用show()方法。
Qsplitter.count()返回一个splitter里面的widget的数目。
QSplitter.restoreState()和QSplitter.saveState()用来保存和恢复状态,一般和Qsetting一起使用。

【转载】Pyqt QSplitter分割窗口的更多相关文章

  1. Qt5布局管理(一)——QSplitter分割窗口类

    转载:LeeHDsniper 概述 本文首先通过三个实例分别介绍Qt5的分割窗口QSplitter类.停靠窗口QDockWidget类.堆栈窗体QStackedWidget类,然后介绍布局管理器的使用 ...

  2. qt QSplitter分割窗口

    #include <QApplication> #include <QFont> #include <QTextEdit> #include <QSplitt ...

  3. Qt创建分割窗口

    1.QT中QSplitter类可以用来灵活分割窗口,从而产生可用的布局,在以后进行界面布局很有用. 2.先看代码,这个分割窗口按顺序添加子窗口: #include "mainwindow.h ...

  4. 分割窗口QSplitter类

    概述 分割窗口QSplitter类在应用程序中经常用到,它可以灵活分割窗口的布局,经常用在类似文件资源管理器的窗口设计中 在Qt开发中,QSplitter是比较常用到的,也就是分割窗口.并且窗口分割处 ...

  5. QT5学习:分割窗口类的使用

    分割窗口在应用程序中经常用到,它可以灵活分布窗口布局,经常用于类似文件资源管理器的窗口设计中,然后抱着这样的想法简单的实现了下 [cpp]  view plain copy   //main.cpp ...

  6. Vim的分割窗口split命令

    显示两个不同的文件:或者同时显示一个文件的两个不同地方:又或者并排比较两个文件.这一切都可以通过分割窗口实现. 打开新窗口最简单的命令如下: :split (水平分割) || :vsplit (垂直分 ...

  7. VIM 分割窗口

    VIM 分割窗口     *08.1*  分割窗口 打开新窗口最简单的命令如下: :split 这个命令把屏幕分解成两个窗口并把光标置于上面的窗口中: +----------------------- ...

  8. pyqt pyside 设置窗口关闭时删除自身

    pyqt pyside 设置窗口关闭时删除自身 self.setAttribute(QtCore.Qt.WA_DeleteOnClose)

  9. VC++环境下单文档SDI与OpenGL多视图分割窗口的实现-类似3DMAX的主界面

    本文主要讲述如何在VC++环境下实现单文档SDI与OpenGL多视图分割窗口,最终的界面类似3DMAX的主界面.首先给出我实现的效果图: 整个实现过程网络上有很多零散的博文,请各位自行搜索,在基于对话 ...

随机推荐

  1. div里包含img底部必定多出空白的解决办法

    研究了很久,自己写了js代码都解决不了.最后还是靠万能的网友解决了这一问题! 问题:adding.margin.border都设为0,无效.怎么样都多出3px. 解决方案: 1.设置div{ font ...

  2. 转:js中this关键字详解

    this指向哪里? 一般而言,在Javascript中,this指向函数执行时的当前对象. In JavaScript, as in most object-oriented programming ...

  3. JQuery知识点链接

    1.深入理解jQuery插件开发                      http://learn.jquery.com/plugins/basic-plugin-creation/ 2.jQuer ...

  4. (转) Docker swarm - 使用体验 1+2

    背景 凭借敏捷开发部署理念的推行,相信对于很多人来说docker这项容器技术已经并不陌生,Docker 1.12引擎发布了快两个月,新引擎中包含了许多特性.诸如: Swarm模式,容器集群的健康检查, ...

  5. Different Ways to Add Parentheses

    Given a string of numbers and operators, return all possible results from computing all the differen ...

  6. ios bitcode 机制对 dsym 调试文件的影响

    今天想试试用dsym和crash文件跟踪crash信息,可是一直返回如下信息: Thread name: Dispatch queue: com.apple.main-thread Thread Cr ...

  7. ACM/ICPC 之 BFS(离线)+康拓展开 (HDU1430-魔板)

    魔板问题,一道经典的康拓展开+BFS问题,为了实现方便,我用string类来表示字符串,此前很少用string类(因为不够高效,而且相对来说我对char数组的相关函数比较熟),所以在这里也发现了很多容 ...

  8. 【hiho一下第77周】递归-减而治之 (MS面试题:Koch Snowflake)

    本题是一道微软面试题,看起来复杂,解出来会发现其实是一个很简单的递归问题,但是这道题的递归思路是很值得我们反复推敲的. 原题为hihocoder第77周的题目. 描述 Koch Snowflake i ...

  9. AFNetWorking支持解析html的方法

    在AFURLResponseSeriallzation.m的226行 手动添加@"text/html" 添加之前解锁文件

  10. dhtmlxTree介绍(转载)

    dhtmlxTree 是树菜单,允许我们快速开发界面优美,基于Ajax的javascript库. 她允许在线编辑,拖拽,三种状态(全选.不选.半选),复选框等模式.同时在加载大数据量的时候,仍然 可以 ...