# _*_ 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

相关文章:

  • 2021-08-08
  • 2021-11-08
  • 2022-12-23
  • 2022-12-23
  • 2021-09-17
猜你喜欢
  • 2022-12-23
  • 2021-04-08
  • 2021-10-12
  • 2021-06-19
  • 2022-12-23
  • 2021-07-27
相关资源
相似解决方案