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