PyQT5:如何将QLineEdit字符串从一个类传递到另一个类? [关闭]

问题描述 投票:0回答:1

我正在编写一个生成发票的应用程序。我有两个窗户。在第一个中,我使用QLineEdit从用户(姓名,地址等)收集数据。然后,我想将此数据传递给另一个类以进行发票。我该怎么办?

class FormularzFaktury(QDialog):
    def __init__(self, parent=None):
        super(FormularzFaktury, self).__init__(parent)

(...)
        nazwiskonabywcyLbl = QLabel('Imię i nazwisko/nazwa: ')
        self.nazwiskonabywcy = QLineEdit(self)
        uklad.addWidget(nazwiskonabywcyLbl, 2, 0)

(...)

    def dodajprodukty(self):
        self.DP = DodajProdukty()
        self.DP.show()

class DodajProdukty(QDialog):
    def __init__(self, parent=None):
        super(DodajProdukty, self).__init__(parent)

(...)
    def show_nazwiskonabywcy(self)
        nazwiskonabywcy=self.nazwiskonabywcy.text()
        print(nazwiskonabywcy)

如何将self.nazwiskonabywcy.text()从第一类传递到第二类?

python pyqt5 invoice qlineedit
1个回答
0
投票

您可以将self.nazwiskonabywcy作为参数传递给DodajProdukty,然后将其设置为自己的self.nazwiskonabywcy,因此代码如下所示:

class FormularzFaktury(QDialog):
    def __init__(self, parent=None):
        super(FormularzFaktury, self).__init__(parent)

        nazwiskonabywcyLbl = QLabel('Imię i nazwisko/nazwa: ')
        self.nazwiskonabywcy = QLineEdit(self)
        uklad.addWidget(nazwiskonabywcyLbl, 2, 0)

    def dodajprodukty(self):
        self.DP = DodajProdukty(self.nazwiskonabywcy)
        self.DP.show()

class DodajProdukty(QDialog):
    def __init__(self, nazwiskonabywcy, parent=None):
        super(DodajProdukty, self).__init__(parent)
        self.nazwiskonabywcy = nazwiskonabywcy

    def show_nazwiskonabywcy(self)
        nazwiskonabywcy=self.nazwiskonabywcy.text()
        print(nazwiskonabywcy)

或者如果在实例化self.nazwiskonabywcy时已经将DodajProdukty设置为正确的文本,则可以将值直接传递给新类,而不是传递整个QLineEdit:

class FormularzFaktury(QDialog):
    def __init__(self, parent=None):
        super(FormularzFaktury, self).__init__(parent)

        nazwiskonabywcyLbl = QLabel('Imię i nazwisko/nazwa: ')
        self.nazwiskonabywcy = QLineEdit(self)
        uklad.addWidget(nazwiskonabywcyLbl, 2, 0)

    def dodajprodukty(self):
        self.DP = DodajProdukty(self.nazwiskonabywcy.text())
        self.DP.show()

class DodajProdukty(QDialog):
    def __init__(self, nazwiskonabywcy, parent=None):
        super(DodajProdukty, self).__init__(parent)
        self.nazwiskonabywcy = nazwiskonabywcy

    def show_nazwiskonabywcy(self)
        print(self.nazwiskonabywcy)
© www.soinside.com 2019 - 2024. All rights reserved.