【问题标题】:PyQT5: How to pass QLineEdit string from one class to another? [closed]PyQT5:如何将 QLineEdit 字符串从一个类传递到另一个类? [关闭]
【发布时间】:2020-05-03 10:06:37
【问题描述】:

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

【问题讨论】:

  • @musicamante 我已经编辑过
  • 如何创建这些对话框?它们是同时显示的吗?是否有“主”程序或显示这些对话框的东西?如何?请仔细阅读该链接:示例代码不仅应该是最小的,而且应该可重现。

标签: python pyqt5 invoice qlineedit


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-10-10
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多