PyQt5直接用代码布局 -栅格布局实现计算器UI(QGridLayout)
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QHBoxLayout, QPushButton, QMessageBox, QApplication, QVBoxLayout, QWidget, \
QLabel, QGridLayout
'''
PyQt5直接用代码布局 -栅格布局实现计算器UI(QGridLayout)
'''
class CalcDemo(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 设置定位和左上角坐标
self.setGeometry(300, 300, 360, 260)
# 设置窗口标题
self.setWindowTitle('栅格布局实现计算器 的演示')
# 设置窗口图标
# self.setWindowIcon(QIcon('../web.ico'))
grid = QGridLayout()
self.setLayout(grid)
names = [
'清空','后退','','关闭',
'7','8','9','/',
'4','5','6','*',
'1','2','3','-',
'0','.','=','+',
]
# 生成一个5行四列的元组坐标
positions = [(i,j) for i in range(5) for j in range(4)]
print(positions)
# 加*将元组打散为单个值
print(*(1,2))
for position,name in zip(positions,names):
if name == '':
continue
button = QPushButton(name)
grid.addWidget(button,*position)
if __name__ == '__main__':
app = QApplication(sys.argv)
# 设置应用图标
app.setWindowIcon(QIcon('../web.ico'))
w = CalcDemo()
w.show()
sys.exit(app.exec_())