重点是:
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
网友评论