实战PyQt5: 022-布局管理之QSplitter

本文介绍了PyQt中的QSplitter组件,它是用于创建交互式布局管理器的特殊QWidget,支持水平和垂直布局。通过实例演示了如何创建和配置QSplitter,并结合QFrame控件展示了其在实际项目中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QSpiltter简介

PyQt提供了一个特殊的布局管理控制QSpiltter, 它既可以看做一个QWidget部件,也可以看做一个动态的布局管理器,QSplitter允许用户拖动子控件的边界控制子控件的大小,并提供一个处理拖曳子控件的控制器,QSplitter对其子控件的布局,默认为横向布局的,可以使用Qt.Vertical参数对子控件进行垂直布局。

QSplitter常用方法有:

  • addWidget(): 添加一个控件到QSplitter中
  • insertWidget(): 在指定位置向QSplitter中插入一个控件
  • indexOf(): 返回指定控件在QSplitter中的索引号
  • setOrientation(): 设置布局方向(水平:Qt.Horizontal, 垂直:Qt.Vertical)
  • count(): 返回QSplitter中控件的数量
  • setSizes():设置控件的初始大小

QSplitter类继承关系:

实战PyQt5: 022-布局管理之QSpiltter

测试QSplitter

下面的例子测试QSplitter水平和垂直布局,创建文件qsplitter.py,代码如下:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QFrame, QTextEdit, QSplitter, QVBoxLayout
 
class DemoSplitter(QWidget):
    def __init__(self, parent=None):
        super(DemoSplitter, self).__init__(parent)
        
        # 设置窗口标题
        self.setWindowTitle('实战PyQt5: QSplitter Demo!')      
        # 设置窗口大小
        self.resize(400, 280)
        
        #设置主窗口布局
        mainLayout = QVBoxLayout(self)
        
        #创建一个水平Splitter
        hSplitter = QSplitter(Qt.Horizontal)
        #为hSplitter添加两个控件
        frm1 = QFrame(self)
        frm1.setFrameShape(QFrame.StyledPanel)
        hSplitter.addWidget(frm1)
        hSplitter.addWidget(QTextEdit(self))
        hSplitter.setSizes([100, 200])
        
        #创建一个垂直Splitter
        vSplitter = QSplitter(Qt.Vertical)
        vSplitter.addWidget(hSplitter)
        frm2 = QFrame(self)
        frm2.setFrameShape(QFrame.StyledPanel)
        vSplitter.addWidget(frm2)
        
        mainLayout.addWidget(vSplitter)
        
        self.setLayout(mainLayout)
        
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = DemoSplitter()
    window.show()
    sys.exit(app.exec())

运行结果如下图所示:

实战PyQt5: 022-布局管理之QSpiltter

测试QSplitter

本文知识点

  • QSplitter是一个特殊的QWidget,它是一个用户可交互的布局管理控件;
  • QSplitter的创建和使用方法;
  • 认识一个新的控件QFrame。

前一篇: 实战PyQt5: 021-布局管理之QSpacerItem

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值