I am writing an application which generates invoices. I have two windows. In the first one I am gathering data from a user (name, address etc.) by using QLineEdit. Then I want to pass this data to another class to make an invoice. How can I do it?
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)
How to pass self.nazwiskonabywcy.text() from the first class to the second class?
You can pass self.nazwiskonabywcy
as a parameter to DodajProdukty
and then set it to its own self.nazwiskonabywcy
, so the code would look like this:
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)
Or if self.nazwiskonabywcy
is already set to the correct text at the point where DodajProdukty
is instantiated, you can just pass the value directly to the new class, instead of passing the whole 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)