Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 重用设计元素PyQt_Python_Qt_Pyqt - Fatal编程技术网

Python 重用设计元素PyQt

Python 重用设计元素PyQt,python,qt,pyqt,Python,Qt,Pyqt,使用python和qt框架构建GUI应用程序时。我希望重用某些UI元素,而无需反复定义它们。在我的示例中,我想创建一个下拉菜单,用y(number)和result(number)定义行数 应用实例 import sys from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QLineEdit, QGridLayout, QLabel) from math imp

使用python和qt框架构建GUI应用程序时。我希望重用某些UI元素,而无需反复定义它们。在我的示例中,我想创建一个下拉菜单,用y(number)和result(number)定义行数

应用实例

import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton,
                             QLineEdit,  QGridLayout, QLabel)
from math import sqrt

class program(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('Program')

        flow = QLabel('x1')
        pressuredrop_1 = QLabel('y1')
        pressuredrop_2 = QLabel('y2 ')
        kv = QLabel('result 1')
        kv_2 = QLabel('result 2')

        grid = QGridLayout()
        grid.setSpacing(10)

        self.setLayout(grid)
        self.setGeometry(300,300,300,150)

        self.btn = QPushButton('Calculate', self)

        self.flow = QLineEdit(self)
        self.pd = QLineEdit(self)
        self.result = QLineEdit(self)

        self.pd_2 = QLineEdit(self)
        self.kvresult_2 = QLineEdit(self)

        grid.addWidget(flow, 1,0)
        grid.addWidget(self.flow, 1, 1)

        grid.addWidget(pressuredrop_1, 2,0)
        grid.addWidget(self.pd, 2, 1)
        grid.addWidget(pressuredrop_2, 3,0)
        grid.addWidget(self.pd_2, 3, 1)

        grid.addWidget(kv, 2,2)
        grid.addWidget(self.result, 2,3)
        grid.addWidget(kv_2, 3,2)
        grid.addWidget(self.kvresult_2, 3,3)

        grid.addWidget(self.btn, 4,1)

        self.btn.clicked.connect(self.calculate)
        self.btn.clicked.connect(self.calculate_2)

        self.show()    


你的问题是什么?我想你可以用所有的GUI初始化创建一个类,然后实例化它多少次。通过这种方式,您将“重用”您创建的GUI结构,以便根据用户输入动态更改
yn
/
result n
小部件的行数?抱歉误解@是的,这正是我的意思。@Eduardo这意味着我必须用正手来定义它们?对于每一行,我需要添加至少8行代码。这不能做得更小/更容易吗?你的问题是什么?我想你可以用所有GUI初始化创建一个类,然后实例化它多少次。通过这种方式,您将“重用”您创建的GUI结构,以便根据用户输入动态更改
yn
/
result n
小部件的行数?抱歉误解@是的,这正是我的意思。@Eduardo这意味着我必须用正手来定义它们?对于每一行,我需要添加至少8行代码。这不能做得更小/更容易吗?