使用PyQt5做一个简单的计数器界面

本文详细介绍如何在PyQt5中使用栅格布局(Grid Layout)来创建一个计算器界面。通过迭代方式将控件填充到网格中,实现了按钮的合理布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要介绍如何使用栅格布局,并通过迭代的方式将控件填入栅格布局中
首先,我们先把想要的控件名放入一个列表中:
class Calc(QWidget):
    def __init__(self):
        super(Calc, self).__init__()
        self.setWindowTitle("计算器")

        grid = QGridLayout()
        self.setLayout(grid)

        names = ['Cls', 'Back', '', 'Close',
                 '7', '8', '9', '/',
                 '4', '5', '6', '*',
                 '0', '.', '=', '+']
接下来我们通过循环产生每一个元素所属的列数,行数:
positions = [(i, j) for i in range(5) for j in range(4)]
最后,我们就只需要把控件填入对应的栅格中:
        for position, name in zip(positions, names):
            if name == "":
                continue
            button = QPushButton(name)
            grid.addWidget(button, *position)
效果如图:

在这里插入图片描述

完整代码如下:
import sys
from PyQt5.QtWidgets import *

class Calc(QWidget):
    def __init__(self):
        super(Calc, self).__init__()
        self.setWindowTitle("计算器")

        grid = QGridLayout()
        self.setLayout(grid)

        names = ['Cls', 'Back', '', 'Close',
                 '7', '8', '9', '/',
                 '4', '5', '6', '*',
                 '0', '.', '=', '+']

        positions = [(i, j) for i in range(5) for j in range(4)]

        for position, name in zip(positions, names):
            if name == "":
                continue
            button = QPushButton(name)
            grid.addWidget(button, *position)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    main = Calc()
    main.show()
    sys.exit(app.exec_())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值