PyQt5 QGridLayout(按照表格那样一行一列放置)

2020-04-02  本文已影响0人  _Mirage

重点是:
grid布局,添加组件的函数接受三个参数,第一个是组件,后面是横坐标和纵坐标

代码:

# coding='utf-8'


from PyQt5.QtWidgets import QWidget, QApplication,\
    QPushButton, QGridLayout
import sys


class Gui(QWidget):
    def __init__(self):
        super().__init__()
        self.start()

    def start(self):
        # 实例化表格放置的布局对象
        grid = QGridLayout()
        # 把QWidget的默认布局设置成上面的表格布局
        self.setLayout(grid)

        # 计算器的所有按键的名字,按表格样式摆放
        names = ['%', 'CE', 'C', 'X',
                 '1/x', 'X^2', 'gun', '÷',
                 '7', '8', '9', '×',
                 '4', '5', '6', '-',
                 '1', '2', '3', '+',
                 '+/-', '0', '.', '='
                 ]
        # 所有计算器按键的位置,从(0, 0) --> (5, 3)
        positions = [(i, j) for i in range(6) for j in range(4)]

        # 从(0, 0) -> (0, 1) ----> (5, 3),一个个按钮生成后添加到表格布局中
        for position, name in zip(positions, names):
            # 表格布局的addWidget第一个参数是组件,\
            # 第二个参数是x坐标,第三个参数是y坐标,这里用了元组解包
            grid.addWidget(QPushButton(name, self), *position)

        # 这里就不手动设置主窗体的大小了,让程序自动\
        # 根据布局好的组件设置合适的大小
        self.move(300, 300)
        self.setWindowTitle('Calculator')
        self.show()


win = QApplication(sys.argv)
gui = Gui()
sys.exit(win.exec_())

运行结果:


image.png
上一篇 下一篇

猜你喜欢

热点阅读