PyQt5常用操作之布局

QGridLayout

QGridLayout:网格布局,又叫“九宫格布局”

# -*- coding = utf-8 -*-
# @Time : 2022/9/5 21:13
# @Author : Arthur
# @FileName : 网格布局练习.py
# @Software : Pycharm
import sys

from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QGridLayout, QPushButton


class my_window(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('计算器')

        # 准备数据
        data = {
            0: ['7', '8', '9', '+', '('],
            1: ['4', '5', '6', '-', ')'],
            2: ['1', '2', '3', '*', '<-'],
            3: ['0', '.', '=', '/', 'C']
        }

        # 整体垂直布局
        layout = QVBoxLayout()

        # 输入框
        edit = QLineEdit()
        edit.setPlaceholderText('请输入内容')
        # 把输入框添加到容器中
        layout.addWidget(edit)

        # 网格布局
        grid = QGridLayout()

        # 循环创建追加进去
        for line_num, line_data in data.items():
            # 此时 line_num 是第几行,line_data是当前行的数据
            for col_num, number in enumerate(line_data):
                # 此时 col_num是第几列,number是要显示的符号
                btn = QPushButton(number)
                # grid.addWidget(btn)
                grid.addWidget(btn, line_num, col_num)
                pass
            pass

        # 把网格布局追加到容器中
        layout.addLayout(grid)
        self.setLayout(layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)

    w = my_window()
    w.show()

    app.exec_()
PyQt5常用操作之布局

原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/pyqt5changyongcaozuozhibuju/.html

(0)
打赏 微信扫一扫 微信扫一扫
朋远方的头像朋远方
上一篇 2022年9月4日 下午11:33
下一篇 2022年9月6日 上午9:43

相关推荐

发表回复

登录后才能评论