zoukankan      html  css  js  c++  java
  • Pyqt5 基本布局方式

    四种布局方式:水平,垂直,网格,窗体布局。以及两种布局方法:addLayout和addWidget。

    不过窗体布局QFormLayout几乎不用,其他三种就足够了。
    来个例子(模仿windows选择文件的布局):

    代码:

    from PyQt5.QtWidgets import *
    from PyQt5.QtCore import *
    import sys
    class MyWindow(QWidget):
        def __init__(self):
            super(MyWindow, self).__init__()
            self.setWindowTitle("请选择文件/文件夹")
            self.resize(700, 500)
    
            self.initUI()
            self.show()
    
        def initUI(self):
            Layout = QGridLayout(self)
            #定义全局布局,注意参数self
            g = QGridLayout()
            v = QVBoxLayout()
            h = QHBoxLayout()
            # 定义其他两种种布局
            label1 = QLabel("快速访问")
            label2 = QLabel("桌面")
            label3 = QLabel("库")
            label4 = QLabel("我的电脑")
            label7 = QLabel("文件名(N):")
            label6 = QLabel("文件类型(T):")
            label5 = QLabel("网络")
            btn1 = QPushButton("选择")
            btn1.resize(100,10)
            btn2 = QPushButton("取消")
            combo1 = QComboBox()
            combo2 = QComboBox()
            combo2.addItem("所有文件(*.*)")
            #定义各种控件
    
            splitter = QSplitter()
            model = QFileSystemModel()
            model.setRootPath(QDir.currentPath())
            tree = QTreeView(splitter)
            tree.setModel(model)
            #tree.setRootIndex(model.index(QDir.currentPath()))
    
            v.addWidget(label1)
            v.addWidget(label2)
            v.addWidget(label3)
            v.addWidget(label4)
            v.addWidget(label5)
            g.addWidget(label7, 0, 0)
            g.addWidget(label6, 1, 0)
            g.addWidget(combo1, 0, 1)
            g.addWidget(combo2, 1, 1)
            g.addWidget(btn1, 0, 2)
            g.addWidget(btn2, 1, 2)
            h.addWidget(tree)
            #把控件加入布局
            Layout.addLayout(v, 0, 0)
            Layout.addLayout(h, 0, 1)
            Layout.addLayout(g, 1, 1,)
            #把布局加入总的布局方式
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = MyWindow()
        sys.exit(app.exec_())
    

    参考:
    http://www.cnblogs.com/archisama/p/5453260.html
    http://blog.csdn.net/zhulove86/article/details/52563298
    http://www.linuxidc.com/Linux/2012-06/63652p12.htm

  • 相关阅读:
    外星人(alien)
    6. 第 6 章 函数
    5. 第 5 章 循环
    4. 第 4 章 条件选择
    3. 第 3 章 表达式和交互
    2. 第 2 章 C++简介
    1. 第 1 章 计算机和编程简介
    24. 蛇形填数
    23. 开灯问题
    12. aabb
  • 原文地址:https://www.cnblogs.com/jikeboy/p/6617243.html
Copyright © 2011-2022 走看看