from PyQt6.QtWidgets import QApplication,QVBoxLayout, QWidget, QGridLayout, QPushButton, QLineEdit import sys class Window(QWidget): def __init__(w): super().__init__() w.work_1() def work_1(w): w.setWindowTitle("计算器") container = QVBoxLayout() edit = QLineEdit() edit.setPlaceholderText('请输入内容') data = { 0: ['7', '8', '9', '+', '('], 1: ['4', '5', '6', '-', ')'], 2: ['1', '2', '3', '*', '<-'], 3: ['0', '.', '=', '/', 'C'] } layout = QGridLayout() for line_number, line_data in data.items(): for col_number, number in enumerate(line_data): but = QPushButton(number) layout.addWidget(but, line_number, col_number) container.addWidget(edit) container.addLayout(layout) w.setLayout(container) if __name__ =='__main__': app = QApplication(sys.argv) w = Window() w.show() app.exec() # 知识点data.items() 返回key-value组成的元组列表, enumerate(列表),返回index-value的元组列表
注意⚠️:此次运用了setPlaceholderText()给QLineEdit()添加文字, QGridLayout(widget, 参数1, 参数2), 其中widget为添加的控件, 参数为控件在布局中的坐标。