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_()

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


微信扫一扫