编程技术分享平台

网站首页 > 技术教程 正文

7.6 PyQt5布局介绍【分割窗口】-QSplitter

xnh888 2024-11-20 23:23:12 技术教程 27 ℃ 0 评论

1. QSplitter简介

PyQt5分割窗口(QSplitter),用于将多个子窗口或控件分割成可调整大小的部分。允许通过拖动分割器手柄来调整各个部分的大小,从而方便地管理界面布局。

2. QSplitter案例

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QSplitter, QFrame, QTextEdit, QHBoxLayout, QPushButton
from PyQt5.QtCore import Qt


class QSplitterDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('QSplitter分割窗口')
        self.resize(600, 400)

        # 创建顶部左侧QFrame
        top_left_layout = QHBoxLayout()
        top_left_layout.addWidget(QPushButton('顶部左侧QFrame'))

        top_left = QFrame()
        top_left.setFrameShape(QFrame.StyledPanel)  # 设置框架形状
        top_left.setLayout(top_left_layout)  # 为QFrame框架设置布局

        # 创建底部QFrame
        bottom_layout = QHBoxLayout()
        bottom_layout.addWidget(QPushButton('底部QFrame'))

        bottom = QFrame()
        bottom.setFrameShape(QFrame.StyledPanel)
        bottom.setLayout(bottom_layout)

        # 创建分割窗口对象,并设置水平布局
        splitter_1 = QSplitter()
        # 设置分割窗口的方向
        splitter_1.setOrientation(Qt.Horizontal)
        # 设置控件之间的间隔
        splitter_1.setHandleWidth(5)

        # 顶部分割窗口添加控件
        splitter_1.addWidget(top_left)
        splitter_1.addWidget(QTextEdit())
        splitter_1.addWidget(QTextEdit())

        # 底部分割创建添加控件
        splitter_2 = QSplitter(Qt.Vertical)
        splitter_2.addWidget(splitter_1)
        splitter_2.addWidget(bottom)

        h_layout = QHBoxLayout(self)
        h_layout.addWidget(splitter_2)

        splitter_1.splitterMoved.connect(self.splitter_moved)

    def splitter_moved(self, pos, index):
        print(pos, index)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = QSplitterDemo()
    w.show()
    sys.exit(app.exec())

3. 运行结果

4. 常用方法

方法

描述

addWidget(widget)

向 QSplitter 中添加一个控件

setOrientation(Qt.Horizontal or Qt.Vertical)

设置 QSplitter 的方向(水平或垂直)

tsetSizes([size1, size2, ...])

设置每个控件的初始大小

sizes()

获取当前控件的大小列表

5. 常用信号

方法

描述

splitterMoved(int pos, int index)

当用户移动分割条时,触发此信号

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表