首頁  >  文章  >  後端開發  >  PyQt5每天必學之QSplitter實現視窗分隔

PyQt5每天必學之QSplitter實現視窗分隔

不言
不言原創
2018-04-19 10:35:083865瀏覽

這篇文章主要介紹了PyQt5每天必學之窗口分隔,具有一定的參考價值,感興趣的小伙伴們可以參考一下

QSplitter使用戶可以透過拖曳子麵板的邊界控制子麵板的大小。在我們的範例中,我們使用了兩個QSplitter 對三個QFrame 控制項進行了分隔。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

这个例子说明如何使用QSplitter部件。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年8月4日
"""

import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QHBoxLayout, 
QFrame, QSplitter)
from PyQt5.QtCore import Qt

class Example(QWidget):

  def __init__(self):
    super().__init__()

    self.initUI()

  def initUI(self):

    hbox = QHBoxLayout(self)

    topleft = QFrame(self)
    topleft.setFrameShape(QFrame.StyledPanel)

    topright = QFrame(self)
    topright.setFrameShape(QFrame.StyledPanel)

    bottom = QFrame(self)
    bottom.setFrameShape(QFrame.StyledPanel)

    splitter1 = QSplitter(Qt.Horizontal)
    splitter1.addWidget(topleft)
    splitter1.addWidget(topright)

    splitter2 = QSplitter(Qt.Vertical)
    splitter2.addWidget(splitter1)
    splitter2.addWidget(bottom)

    hbox.addWidget(splitter2)
    self.setLayout(hbox)

    self.setGeometry(300, 300, 300, 200)
    self.setWindowTitle('窗口分隔')    
    self.show()

if __name__ == '__main__':

  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())

在我們的範例中,我們使用了三個框架部件和兩個QSplitter 。請注意,某些主題的QSplitter 邊界可能不可見。

 topleft = QFrame(self)
topleft.setFrameShape(QFrame.StyledPanel)

我們為QFrame 控制項新增StyledPanel樣式能讓QFrame 控制項之間的界限更加明顯。

splitter1 = QSplitter(Qt.Horizo​​ntal)
splitter1.addWidget(topleft)
splitter1.addWidget(topright)

我們建立了一個QSplitter控制項,並且加入兩個QFrame 進去。

splitter2 = QSplitter(Qt.Vertical)
splitter2.addWidget(splitter1)

We can also add a splitter to another splitter widget. 我們也可以加入一個QSplitter到另一個QSplitter控制中。

程式執行後

相關推薦:

PyQt5每天必學之工具提示功能

以上是PyQt5每天必學之QSplitter實現視窗分隔的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn