• 【转载】Pyqt QSplitter分割窗口


    转载来自: http://blog.sina.com.cn/s/blog_4b5039210100h3ih.html

    分割窗口在应用程序中经常用到,它可以灵活分布窗口布局,经常用于类似文件资源管理器的窗口设计中。

    QSplitter是用来分割窗口的

    如下代码:

     1 # -*- coding: utf-8 -*-
     2 from  PyQt4 import  QtCore,QtGui
     3 from  PyQt4.QtGui import *
     4 from  PyQt4.QtCore import *
     5 import sys
     6 QtCore.QTextCodec.setCodecForTr(QtCore.QTextCodec.codecForName("utf8"))
     7 class Csplitter(QtGui.QMainWindow):
     8     def __init__(self,parent=None):
     9         super(Csplitter,self).__init__(parent)
    10         self.resize(400,400)
    11         self.setWindowTitle('Pyqt Qsplitter')
    12         self.textedit = QTextEdit()
    13         self.textedit.setText("This is a TextEdit!")
    14         self.listwidget = QListWidget()
    15         self.listwidget.addItem("This is  a 
    ListWidget!")
    16         self.listwidget.addItem("aaaaaaaaaaaaaaa")
    17         self.treewidget = QTreeWidget()
    18         self.treewidget.setHeaderLabels(['This','is','a','TreeWidgets!'])
    19         splitter = QSplitter(self)
    20         splitter.addWidget(self.textedit)
    21         splitter.addWidget(self.listwidget)
    22         splitter.addWidget(self.treewidget)
    23         splitter.setOrientation(Qt.Vertical)    # Qt.Vertical 垂直   Qt.Horizontal 水平
    24         self.setCentralWidget(splitter)
    25 
    26 if __name__ == '__main__':
    27     app= QtGui.QApplication(sys.argv)
    28     main = Csplitter()
    29     main.show()
    30     sys.exit(app.exec_())

    效果:

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

    我们创建了三个widget以后,我们通过创建一个Qsplitter(parent),注意它的参数此处是self,也就是我们的MainWindow。
    然后把三个widget通过addwidget方法加到Qsplitter上,如果我们不调用setOrientation(Qt.Vertical)的话,三个控件默认是水平摆放的,这里我们调用了,变为了垂直摆放,最后把splitter放到了MainWindow上。
    另外Qsplitter还有别的很多methods。
    Qsplitter.insertWidget(self,int index,Qwidget widget)在index序号处插入一个widget。
    Qsplitter.indexOf(self,Qwidget widget)可以得到一个widget的index。
    当然如果要隐藏某一个widget,可以调用hide()方法,要显示可以调用show()方法。
    Qsplitter.count()返回一个splitter里面的widget的数目。
    QSplitter.restoreState()和QSplitter.saveState()用来保存和恢复状态,一般和Qsetting一起使用。

  • 相关阅读:
    从零构建自己的远控•界面搭建(2)
    从零构建自己的远控•项目简介(1)
    特训99小游戏
    WritePrivateProfileSection 示例
    dll劫持
    c/c++创建动态库
    不传请求号修改测试系统或者正式系统代码
    ABAP 业务处理中的弹窗提示
    SAP MM 采购订单中货币单位怎么修改
    ABAP 屏幕字段无搜索帮助处理
  • 原文地址:https://www.cnblogs.com/dcb3688/p/4533673.html
Copyright © 2020-2023  润新知