Seite 1 von 1

Eingabe aus QDialog kann ich nicht auslesen

Verfasst: Samstag 14. Januar 2023, 16:00
von Tiger
Wenn ich das Program a1400_sk.py als eigenständiges Programm aufrufe, kann ich eine Eingabe im Dialog-Fenster machen, die ich auch später auslesen kann. Soweit alles ok.

Rufe ich aber das Programm a1400_sk.py aus einem Main Programm (a1000_sk.py) auf, kann ich meine Eingabe aus dem Dialog-Fenster nicht auslesen. Wo ist mein Denkfehler?

Code: Alles auswählen


"""
	a1000_sk.py
"""
import sys, sqlite3
from PySide6.QtWidgets import QApplication, QMainWindow, QDialog
from PySide6.QtGui import QAction

from Qt_uic.frm_main import Ui_frm_main
from Qt_uic.dlg_test22 import Ui_dlg_test22


from a1000 import step1000
from a1100 import Step1100
from a1400_sk import Qdein

class Fenster01(QDialog,Ui_dlg_test22):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

    def ein_bah_neu(self):
        self.s1 = Qdein()
        self.s1.show()

class Frm_main(QMainWindow,Ui_frm_main):
    def __init__(self, f1):
        super().__init__()
        self.setupUi(self)

        self.act_neuTur.triggered.connect(self.ein_tur_neu)
        self.act_bahNeu.triggered.connect(f1.ein_bah_neu)
        self.act_bahDea.triggered.connect(self.ein_bah_dea)
        self.act_tnrNeu.triggered.connect(self.ein_tnr_neu)
        self.act_tnrPau.triggered.connect(self.ein_tnr_pau)

    #   ->  Einstellungen/Neues Turnier neue DB anlegen
    def ein_tur_neu(self):
        step1000()                  # Db-File nach ..old.db kopieren
        Step1100.tabanl(self)              # Bestehende Tabellen löschen + neue anlegen
        Step1100.quittung(self)            # Bestätigung ausgeben, dass alles durchgeführt wurde

    #   ->  Einstellungen/Bahnen aktivieren / sperren
    def ein_bah_dea(self):
        pass

    #   ->  Einstellungen/neue Teilnehmer (Teams)
    def ein_tnr_neu(self):
        pass

    #   ->  Einstellungen/Teilnehmer (Teams) pausieren /aktivieren
    def ein_tnr_pau(self):
        pass

def main():
    app = QApplication(sys.argv)
    fenster1 = Fenster01()
    fenster = Frm_main(fenster1)
    fenster.show()
    sys.exit(app.exec())


if __name__ == "__main__":
    main()
   ##################################################################################### 
"""
    a1400_sk.py

"""


from PySide6.QtWidgets import QApplication, QMainWindow, QDialog, QMessageBox, QDialogButtonBox, QLineEdit
from Qt_uic.dlg_test22 import Ui_dlg_test22


class Qdein(QDialog, Ui_dlg_test22):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.buttonBox = QDialogButtonBox(self)
        self.buttonBox.accepted.connect(self.ok_btn())

    def ok_btn(self):
        print('Alles klar')
        print(self.lineEdit.text())  


Re: Eingabe aus QDialog kann ich nicht auslesen

Verfasst: Samstag 14. Januar 2023, 16:23
von sparrow
Ohne jetzt im Detail drauf gechaut zu haben:
Es gibt einen Unterschied darin auf eine Funktion zu verweisenund eine Funktion auszuführen.

Code: Alles auswählen

self.buttonBox.accepted.connect(self.ok_btn())
self.okt_btn wird hier ausgeführt. Das willst du nicht. Und das tust du auch bei den anderen Stellen im Code nicht, wo du connect verwendest.

Re: Eingabe aus QDialog kann ich nicht auslesen

Verfasst: Samstag 14. Januar 2023, 17:56
von Axel-WAK
ohne Klammern wäre besser

Code: Alles auswählen

self.buttonBox.accepted.connect(self.ok_btn)

Re: Eingabe aus QDialog kann ich nicht auslesen

Verfasst: Samstag 14. Januar 2023, 18:08
von Sirius3
Variablen und Funktionen sollten keine kryptischen Abkürzungen enthalten, sondern aussagekräftig sein, a1000 und a1100 sind besonders schlechte Namen, wer kann schon den Unterschied zwischen 1000 und 1100 erkennen? Würde man ein_bah_dea einfach einstellungen_bahnen_aktivierung nennen, könnte man den Kommentar auch sparen.
Man generiert aus ui-Dateien keine Python-Dateien sondern lädt sie direkt.

Re: Eingabe aus QDialog kann ich nicht auslesen

Verfasst: Samstag 14. Januar 2023, 19:22
von Tiger
Vielen Dank für Eure Antworten. Sicherlich habt ihr recht mit euren Kommentaren.- Aber leider haben mir die Antworten kein Stück näher zum meinem Ziel gebracht.
Bei der weiteren Programmierung werde ich das Umsetzen, was User „Sirius3“ geschrieben hat.

Zu meiner Person: Ich bin über 70 Jahre und habe vor einiger Zeit mit dem Python programmieren begonnen. Im zweiten Schritt habe ich mich mit OOP beschäftigt. Nun möchte ich den nächsten Schritt mit GUI Qt machen.
Dabei verfolge ich auch ein konkretes Projekt.

Über eine gut verständliche Problemlösung würde ich mich sehr freuen.

Re: Eingabe aus QDialog kann ich nicht auslesen

Verfasst: Samstag 14. Januar 2023, 19:27
von __blackjack__
@Tiger: Was hast Du denn nicht verstanden? sparrow hat die Antwort geschrieben und Axel-WAK hat den Code dazu gezeigt.

Re: Eingabe aus QDialog kann ich nicht auslesen

Verfasst: Montag 20. Februar 2023, 20:25
von bb1898
__blackjack__ hat geschrieben: Samstag 14. Januar 2023, 19:27 @Tiger: Was hast Du denn nicht verstanden? sparrow hat die Antwort geschrieben und Axel-WAK hat den Code dazu gezeigt.
Nur dass "wäre besser" hier nicht passt. Was Axel-WAK geschrieben hat, ist nicht besser, sondern richtig und müsste m.E. Dein Problem lösen.