拆分窗口控件QSplitter 02

14 阅读1分钟

QSplitter 是 PyQt6 中用于创建可调整大小的分割窗口的控件,允许用户通过拖动分隔条来调整子部件的大小比例。

实现如下的效果. image.png

实现的代码

from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import QApplication, QWidget, QSplitter, QScrollArea, QLabel, QHBoxLayout
import sys
from PyQt6.QtGui import QPixmap


class MainWindows(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.ui()

    def ui(self):
        self.setWindowTitle("QSplit测试")
        self.show()
        self.resize(1200, 400)
        self.splitter = QSplitter()

        self.score1 = QScrollArea()
        self.score2 = QScrollArea()
        self.score3 = QScrollArea()
        self.label1 = QLabel()
        self.label2 = QLabel()
        self.label3 = QLabel()
        # 添加图片
        self.label1.setPixmap(
            QPixmap("/Users/wangjien/PycharmProjects/pythonGit/PyQt6学习/2_书籍学习/2_2_控件/Qsplitter_test/mei1.jpeg"))
        self.score1.setWidget(self.label1)
        self.label2.setPixmap(
            QPixmap("/Users/wangjien/PycharmProjects/pythonGit/PyQt6学习/2_书籍学习/2_2_控件/Qsplitter_test/mei2.jpeg"))
        self.score2.setWidget(self.label2)
        self.label3.setPixmap(
            QPixmap("/Users/wangjien/PycharmProjects/pythonGit/PyQt6学习/2_书籍学习/2_2_控件/Qsplitter_test/mei3.jpg"))
        self.score3.setWidget(self.label3)
        # 将布局添加到
        self.splitter.addWidget(self.score1)
        self.splitter.addWidget(self.score2)
        self.splitter.addWidget(self.score3)
        self.splitter.setSizes([200, 200, 200])
        self.splitter.setOpaqueResize(True)
        h_layout = QHBoxLayout()
        h_layout.addWidget(self.splitter)
        self.setLayout(h_layout)


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