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