-
Okno B powinno być typu Dialog.
-
Dla porządku w kodzie powinieneś oddzielnie trzymać źródło okna wygenerowane z QtDesignera oraz oddzielnie trzymać implementację tego okna - implementacja działania okna to klasa, która dziedziczy po oknie z QtDesignera.
-
Podpinanie akcji pod przycisk w oknie B realizuje się w ten sposób:
Kopiuj
QtCore.QObject.connect(self.btnZamknijOkno, QtCore.SIGNAL("clicked()"), self.akcjaZamknijOkno)
Gdzie self.akcjaZamknijOkno to metoda klasy zamykająca okno, a self.btnZamknijOkno to referencja do obiektu przycisku.
Najlepiej ten kod wykonać na końcu metody setupUi.
- Implementację akcji przycisku zamykającego dialog realizuje się następująco:
Kopiuj
def akcjaZamknijOknododajPacjenta(self):
self.wartosci_zwracane=(unicode(self.EditPesel.text()),unicode(self.EditImie.text()))
self.dialog.accept()
Gdzie self.dialog to referencja na utworzony obiekt okna (zachowany z drugiego argumentu metody setupUi).
self.wartosci_zwracane może być użyty przez metodę okna A uruchamiającą okno B.
Gdy chcesz zamknąć okno, bez zwracania niczego, to tworzysz przycisk z akcją zawierającą wywołanie: self.dialog.reject()
- Metoda okna A wywołująca okno B może wyglądać następująco:
Kopiuj
def odpalOknoB(self):
wid=QtGui.QDialog()
ui = OknoB_Implementacja()
ui.setupUi(wid)
wid.show()
if wid.exec_()==QtGui.QDialog.Accepted:
print ui.wartosci_zwracane
Mam nadzieję, że wyciągniesz coś z tego co tu napisałem ;)