zoukankan      html  css  js  c++  java
  • pyqt布局管理器QGridLayout简单示例

    # _*_ coding:utf-8 _*_
    import sys
    from PyQt4 import QtGui
    
    class Example(QtGui.QWidget):
        def __init__(self):
            super(Example,self).__init__()
            self.grid = QtGui.QGridLayout()
            self.initUI()
            self.setWindowTitle('grid layout')
    
        def initUI(self):
            while self.grid.count():
                item = self.grid.takeAt(0)
                widget = item.widget()
                # if widget has some id attributes you need to
                # save in a list to maintain order, you can do that here
                # i.e.:   aList.append(widget.someId)
                widget.deleteLater()
    
            names=['Cls','Bck','','Close','7','8','9','/','4',
                   '5','6','*','1','2,','3','-','0','.','=','+']
    
            j=0
            pos=[(0,0),(0,1),(0,2),(0,3),
                 (1,0),(1,1),(1,2),(1,3),
                 (2,0),(2,1),(2,2),(2,3),
                 (3,0),(3,1),(3,2),(3,3),
                 (4,0),(4,1),(4,2),(4,3)]
            for iterm in names:
                button=QtGui.QPushButton(iterm)
                if j==2:
                    change=QtGui.QPushButton(u'文本编辑器')
                    self.grid.addWidget(change,0,2)
                    change.clicked.connect(self.otherUI)
    
    
                else:
                    self.grid.addWidget(button,pos[j][0],pos[j][1])
                j=j+1
    
            self.setLayout(self.grid)
            self.resize(300,300)
        def otherUI(self):
            while self.grid.count():
                item = self.grid.takeAt(0)
                widget = item.widget()
                # if widget has some id attributes you need to
                # save in a list to maintain order, you can do that here
                # i.e.:   aList.append(widget.someId)
                widget.deleteLater()
            title=QtGui.QLabel('Title')
            author=QtGui.QLabel('Author')
            review=QtGui.QLabel('Review')
    
            titleEdit=QtGui.QLineEdit()
            authorEdit=QtGui.QLineEdit()
            reviewEdit=QtGui.QTextEdit()
    
    
            self.grid.setSpacing(10)
    
            self.grid.addWidget(title,1,0)
            self.grid.addWidget(titleEdit,1,1)
    
            self.grid.addWidget(author,2,0)
            self.grid.addWidget(authorEdit,2,1)
    
            self.grid.addWidget(review,3,0)
            self.grid.addWidget(reviewEdit,3,1,5,1)
    
            back=QtGui.QPushButton(u'返回')
            back.clicked.connect(self.initUI)
            self.grid.addWidget(back,6,2)
    
            self.setLayout(self.grid)
            self.resize(300,300)
    
    
    
    
    app=QtGui.QApplication(sys.argv)
    ex=Example()
    ex.show()
    sys.exit(app.exec_())
    View Code

    展示了如何通过QGridLayout实现窗体控件布局管理。同时,简单的实现了一下两个界面之间的切换。

    解释一下如何删除一个部件管理器的组件:

            while self.grid.count():
                item = self.grid.takeAt(0)
                widget = item.widget()
                # if widget has some id attributes you need to
                # save in a list to maintain order, you can do that here
                # i.e.:   aList.append(widget.someId)
                widget.deleteLater()
  • 相关阅读:
    SWFObject2.0
    年轻人买房的问题
    百度知道的php爬虫
    PHP解决多进程同时读写一个…
    php快速定位多维数组的深度
    不要用充实的借口去浪费时间
    php跨服务器信息获取之cURL
    为你的生命多积累一些厚度
    看完一定让你很受益!
    phpQuery轻松采集网页内容
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/6629543.html
Copyright © 2011-2022 走看看