首页 > 解决方案 > PyQT5:如何将 QLineEdit 字符串从一个类传递到另一个类?

问题描述

我正在编写一个生成发票的应用程序。我有两个窗户。在第一个中,我使用 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() 从第一堂课传递到第二堂课?

标签: pythonpyqt5invoiceqlineedit

解决方案


您可以将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)

推荐阅读