class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("计算棋盘上麦子总量") self.resize(350, 210) # 创建网格布局 self.main_layout = QGridLayout() # 设置网格布局为主布局 self.setLayout(self.main_layout) # 设置布局的水平和垂直间隔距离 self.main_layout.setHorizontalSpacing(15) self.main_layout.setVerticalSpacing(15) # 设置各列的宽度 self.main_layout.setContentsMargins(20, 20, 15, 0) self.main_layout.setColumnStretch(0, 1) self.main_layout.setColumnStretch(1, 3) self.main_layout.setAlignment(Qt.AlignTop) self.setup_01()
def setup_01(self): # 创建三条边标签和输入框 self.label_01 = QLabel("1kg麦子个数", self) self.line_01 = QLineEdit("20000", self) self.label_02 = QLabel("麦子总个数", self) self.line_02 = QLineEdit(self) self.label_03 = QLabel("麦子总量 (万吨)", self) self.line_03 = QLineEdit(self) # 创建计算按钮 self.btn = QPushButton("计 算", self) self.btn.clicked.connect(self.calculate) # 使用for循环使控件文字都居中显示 widgets = [self.line_01, self.line_02, self.line_03] for widget in widgets: widget.setAlignment(Qt.AlignmentFlag.AlignCenter) # 把上面控件添加到网格布局 # 1kg麦子的个数 self.main_layout.addWidget(self.label_01, 0, 0) self.main_layout.addWidget(self.line_01, 0, 1) # 麦子总数量 self.main_layout.addWidget(self.label_02, 1, 0) self.main_layout.addWidget(self.line_02, 1, 1) # 麦子总重量 self.main_layout.addWidget(self.label_03, 2, 0) self.main_layout.addWidget(self.line_03, 2, 1) # 把计算按钮添加到布局 self.main_layout.addWidget(self.btn, 3, 0, 1, -1)