QSplitter用于分割部件,通过添加部件即是可以将该部件与其他部件隔开
首先介绍相关的函数:
下面要实现:QmainWindow上面有三个 widget,一个 TextEdit,一个 ListWidget,一个TreeWidget,要让他们分占窗口,并且鼠标放到两个 widget的边界,还可以拖拽来改 变 widget的大小。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添加到窗口
#!/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_()
运行结果如下:
5.Qsplitter.indexOf(self,Qwidget widget)可以得到一个 widget的 index。
6.当然如果要隐藏某一个 widget,可以调用 hide()方法,要显示可以调用 show()方法。
7.Qsplitter.count()返回一个 splitter里面的 widget的数目。
8.QSplitter.restoreState()和 QSplitter.saveState()用来保存和恢复状态,一般和 Qsetting一起使用。