美文网首页
PyQt5 QGridLayout(按照表格那样一行一列放置)

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

作者: _Mirage | 来源:发表于2020-04-02 03:03 被阅读0次

重点是:
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

相关文章

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

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

  • html一个表格的实现

    目标: 实现如下的表格 思路: 此表格带边框 此表格是五行四列 第一行的第一列与第二行第一列合并,第一行第四列与第...

  • 前端开发 之 HTML基础(三)

    文章简要:表格表单常用元素 表格 基本结构 表格语法 表格标记 tr 表示一行 td 表示一列(一个单元格) 表格...

  • 创建表格

    如何创建一个表格 1.基本形式 注:一个表格至少有一行,一行至少有一列,所以一...

  • html实现一个简单表格

    目标效果 html标签 标签定义表格中的一行 标签定义表格中的表头 标签定义表格中的一列 标签定义表格的页头 标签...

  • HTML基础——表格标签

    什么是表格标签 作用:给一堆数据添加表格语义 格式 table标签表示一个表格,tr标签表示一行,td标签表示一列...

  • Word表格自动编号并居中

    作者按:备忘。 今天在word中插入表格,表格第一列是对术语的编号,后期可能还要修改并在不知道的某一行后面加一行,...

  • vue 下利用sort() 对table 进行排序

    需求: 表格的每一列都可点击排序, 默认降序,第一行合计不参与排序

  • 回溯+暴力n皇后问题

    在n*n的棋盘上放置彼此不受攻击的n个皇后,按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋...

  • 简书 markdown 用法

    1、表格 表格显示 第一列第二列第三列第一行AB第二行12第三行ab markown 原生表格写法: 2、修改文字...

网友评论

      本文标题:PyQt5 QGridLayout(按照表格那样一行一列放置)

      本文链接:https://www.haomeiwen.com/subject/bmhtphtx.html