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. Jmeter监控系统等资源,ServerAgent端口的本次启动端口修改

    默认情况下在下载的ServerAgent下,如果服务是windows系统,则直接启动"startAgent.bat"即可,如果是Linux系统,则直接启动"./start ...

  2. ThreadLocal模式与synchronized关键字的比较

    ThreadLocal模式与synchronized关键字都是用于处理多线程并发访问变量的问题.只是两者处理问题的角度和思路不同. 1)ThreadLocal是一个Java类,通过对当前线程(Thre ...

  3. WKWebView 里 JS 和 native 通信的例子

    native 端 初始化 wkwebview,设置 message handler webView = WKWebView.init() let usecc = self.webView.config ...

  4. POJ 2336

    #include <iostream> using namespace std; int main() { //freopen("acm.acm","r&qu ...

  5. Linux下面安装swoole

    需要安装php7 新建一个文件夹,作为存储swoole的文件夹 然后执行下面相对应的命令,这里是我执行的命令 新建文件夹 mkdir swoole 切入到文件夹中,进行下载安装包 wget http: ...

  6. 八、Linux上常用网络操作

    1. 主机名配置 hostname 查看主机名 hostname xxx 修改主机名 重启后无效 如果想要永久生效,可以修改/etc/sysconfig/network文件 2. IP地址配置 set ...

  7. 漫谈NIO(2)之Java的NIO

    1.前言 上章提到过Java的NIO采取的是多路IO复用模式,其衍生出来的模型就是Reactor模型.多路IO复用有两种方式,一种是select/poll,另一种是epoll.在windows系统上使 ...

  8. Python -- 数据结构实现

    1.堆栈(pyStack.py) class PyStack: def __init__(self, size=20): self.stack = [] self.size = size self.t ...

  9. web前端之JavaScript

    JavaScript概述 JavaScript历史 在上个世纪的1995年,当时的网景公司正凭借其Navigator浏览器成为Web时代开启时最著名的第一代互联网公司.由于网景公司希望能在静态HTML ...

  10. R语言之数据处理常用包

    dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口:tidyr包的作者是Hadley ...