import sys
from PyQt5.QtWidgets import (QApplication,
QWidget,
QSplitter,
QTextEdit,
QPushButton,
QLabel)
from PyQt5.QtCore import (Qt, QSettings) class Window(QWidget):
def __init__(self, parent=None):
super(Window, self).__init__(parent, flags=Qt.Window) # 创建父控件为 Window 的分割窗口:
splitter_0 = QSplitter(self)
# 设置分割窗口下的控件不可折叠:
splitter_0.setChildrenCollapsible(False)
# 设置分割条的宽度:
splitter_0.setHandleWidth(35)
# 设置分割窗口大小:
splitter_0.resize(600, 450) splitter_0.addWidget(QTextEdit()) # 创建父控件为 splitter_0 的分割窗口:
splitter_1 = QSplitter(splitter_0)
# 设置分割窗口的方向:
splitter_1.setOrientation(Qt.Horizontal)
# 为分割窗口添加控件:
splitter_1.addWidget(QTextEdit('横向排列'))
splitter_1.addWidget(QTextEdit('横向排列'))
splitter_1.addWidget(QTextEdit('横向排列'))
# 设置分割窗口下的控件的宽度,如果是垂直排列的则是高度:
splitter_1.setSizes([120, 80, 60])
# 设置分隔条是否跟随鼠标移动:
splitter_1.setOpaqueResize(False) # 创建父控件为 splitter_0 且垂直分割的分割窗口:
splitter_2 = QSplitter(Qt.Vertical, splitter_0)
# 为分割窗口插入控件:
splitter_2.insertWidget(0, QTextEdit('垂直排列'))
splitter_2.insertWidget(1, QTextEdit('垂直排列'))
# 根据 ID 来设置分割窗口中的控件比例:
splitter_2.setStretchFactor(0, 1)
splitter_2.setStretchFactor(1, 3)
# 根据 ID 来设置分割窗口下的控件是否可以折叠:
splitter_2.setCollapsible(0, False)
splitter_2.setCollapsible(1, True) self.show() if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())

界面如下图:

动图效果演示:

【PyQt5 学习记录】010:QSplitter的更多相关文章

  1. 【PyQt5 学习记录】006:重写窗口事件及QMessageBox

    #!/usr/bin/env python import sys from PyQt5.QtWidgets import (QApplication, QMainWindow, QMessageBox ...

  2. 【PyQt5 学习记录】011:使用 QListWidet 创建列表

    使用 QListWidet 创建列表 作者: 八月未见 博客: https://www.cnblogs.com/jmtm/ 创建列表: list_widget = QListWidget() 插入项目 ...

  3. 【PyQt5 学习记录】005:QMainWindow 及状态栏、菜单栏和工具栏

    #!/usr/bin/env python import sys from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QA ...

  4. 【PyQt5 学习记录】004:简单QThread笔记

    在文本编辑框中每隔几秒添加一行文本,代码如下: #!/usr/bin/python3 # -*- coding:utf-8 -*- import sys from PyQt5.QtWidgets im ...

  5. 【PyQt5 学习记录】001:第一个界面

    PyQt5 的安装很简单: pip3 install PyQt5 然后就是写一个最简单的界面试试手: import sys from PyQt5.QtWidgets import QApplicati ...

  6. 【PyQt5 学习记录】009:批量创建组件并查找

    这里需要在创建组件时使用 setObjectName() 为其添加 objectName 属性,再通过 findChild() 或者 findChildren() 函数来查找. 举个栗子,批量创建10 ...

  7. 【PyQt5 学习记录】008:改变窗口样式之二

    super(MainWindow, self).__init__(parent, flags=Qt.Widget) 首先需要关闭窗口的默认样式,以方便定时想要的样式: self.setWindowFl ...

  8. 【PyQt5 学习记录】007:改变窗口样式之一

    class MainWindow(QMainWindow): 2 def __init__(self, parent=None): 3 super(MainWindow, self).__init__ ...

  9. 【PyQt5 学习记录】003:水平布局和获取屏幕尺寸

    #!/usr/bin/python3 # -*- coding:utf-8 -*- import sys from PySide2.QtWidgets import (QApplication, QW ...

随机推荐

  1. 深入set和dict

    一. 浅拷贝和深拷贝   浅拷贝:就是创建一个具有相同类型,相同值但不同id的新对象.  浅拷贝产生的新对象中可变对象的值在发生改变时,会对原对象的值也做出改变,因为这些值是同一个引用. a = [1 ...

  2. mysql8安装成功后忘记密码

    我安装的是社区免安装版,安装成功后密码忘记了.参考了网上的一些方法,自己也做下笔记.仅供参考. 我安装的mysql版本下载地址:https://dev.mysql.com/downloads/mysq ...

  3. SpringBoot学习笔记(一)基础

    Spring Boot理念 习惯优于配置.使用Spring Boot很容易创建一个独立运行(运行jar,内嵌servlet容器).准生产级别的基于Spring框架的项目,使用SpringBoot可以不 ...

  4. Python3模块: hashlib

    简介: 用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法. 在python3中已经废弃了md5和sha模块,简单说 ...

  5. 【xsy1116】数学题 奥数题

    真实奥数题 题目大意:给你正整数k$,r$.问你存在多少对$(x,y)$,满足$x<y$且$x^2+y^2=kz^2$,并将所有符合条件的数对输出. 数据范围:$r≤1e9$,$k={1,2,3 ...

  6. Java多线程——死锁

    当一个线程永远地持有一个锁,并且其他线程都尝试获得这个锁时,那么他永远被阻塞,当线程A持有锁L并想获得锁M的同时,线程B持有锁M并同时尝试获得锁L时,那么两个线程将永远的等待下去,这中情况就是简单的死 ...

  7. Linux下安装jdk8步骤详述(转载)

    Linux下安装jdk8步骤详述 原文地址:http://www.cnblogs.com/shihaiming/p/5809553.html 作为Java开发人员,在Linux下安装一些开发工具是必备 ...

  8. 通过Groovy来消除代码噪声

    通过Groovy来消除代码噪声 Java是在JVM上运行的最广泛使用的编程语言.不过,还有很多其他基于JVM的语言,比如Groovy,Scala,JRuby,Jython,Kotlin等等.其中,Gr ...

  9. 【数组】Find Minimum in Rotated Sorted Array

    题目: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7  ...

  10. Mac OS配置Android SDK环境变量(当不存在 .bash_profile 文件的时候)

    苹果系统已经包含完整的J2SE,其中就有JDK和JVM(苹果叫VM). 如果要在MAC系统下开发CODE.可以先装个IDE(NETBEANS/Eclipse等),而后不需要装JDK和JVM了,MAC下 ...