PyQt学习笔记(8)--QSplitter分割窗口

   QSplitter用于分割部件,通过添加部件即是可以将该部件与其他部件隔开

   首先介绍相关的函数:

1.self.textedit  =  QTextEdit():创建一个TextEdit部件

2.self.textedit.setText():为Text部件添加内容

3.self.listwidget  =  QListWidget():创建一个List部件

4.self.listwidget.addItem():为List部件添加内容

5.self.treewidget  =  QTreeWidget():创建一个QTree部件

6.self.treewidget.setHeaderLabels():位QTree部件添加内容

7.splitter  =  QSplitter(self):为窗口本身添加一个QSplitter,用来分割窗口

8.splitter.addWidget():添加部件

9.splitter.setOrientation(Qt.Vertical):QSplitter按照垂直分割

10.self.setCentralWidget(splitter):将QSplitter添加到窗口


   下面要实现:QmainWindow上面有三个  widget,一个 TextEdit,一个 ListWidget,一个TreeWidget,要让他们分占窗口,并且鼠标放到两个 widget的边界,还可以拖拽来改 变 widget的大小。

#!/usr/bin/env python  
#coding=utf-8  
  
import sys  
from PyQt4.QtCore import *  
from PyQt4.QtGui import * 

class  MainWindow(QMainWindow):
    def  __init__(self,parent=None):
        super(MainWindow,self).__init__(parent)
        
        #创建一个TextEdit部件
        self.textedit  =  QTextEdit()
        self.textedit.setText("This  is  a  TextEdit!")
        #创建一个List部件
        self.listwidget  =  QListWidget()
        self.listwidget.addItem("This\nis\na\nListWidget!")
        #创建一个Tree部件
        self.treewidget  =  QTreeWidget()
        self.treewidget.setHeaderLabels(['This','is','a','TreeWidgets!'])
        
        #创建一个QSplitter,用来分割窗口
        splitter  =  QSplitter(self)
        splitter.addWidget(self.textedit)
        splitter.addWidget(self.listwidget)
        splitter.addWidget(self.treewidget)
        #QSplitter按照垂直分割
        splitter.setOrientation(Qt.Vertical)
        self.setCentralWidget(splitter)

app = QApplication(sys.argv)
app.aboutToQuit.connect(app.deleteLater)
main = MainWindow()
main.show()
app.exec_()
   运行结果如下:

PyQt学习笔记(8)--QSplitter分割窗口_第1张图片

   1.我们创建了三个 widget以后,我们通过创建一个 Qsplitter(parent),注意它的参数此处是 self,也就是我们的 MainWindow。
   2.然后把三个 widget通过  addwidget方法加到 Qsplitter上,如果我们不调用setOrientation(Qt.Vertical)的话,三个控件默认是水平摆放的,这里我们调用了,变为了垂直摆放,最后把 splitter放到了 MainWindow上。
   3.另外 Qsplitter还有别的很多  methods。
   4.
Qsplitter.insertWidget(self,int  index,Qwidget  widget)在 index序 号处插入一个 widget。

   5.Qsplitter.indexOf(self,Qwidget  widget)可以得到一个 widget的 index。
   6.当然如果要隐藏某一个 widget,可以调用 hide()方法,要显示可以调用 show()方法。
   7.Qsplitter.count()返回一个 splitter里面的  widget的数目。
   8.
QSplitter.restoreState()和 QSplitter.saveState()用来保存和恢复状态,一般和 Qsetting一起使用。


你可能感兴趣的:(PyQt编程(python,GUI))