Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. Rückgabe von einem Unterfenster
Forum Updated to NodeBB v4.3 + New Features

Rückgabe von einem Unterfenster

Scheduled Pinned Locked Moved Unsolved German
15 Posts 4 Posters 2.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    kahemenne
    wrote on last edited by
    #3

    Hallo,
    Rückgabe heißt für mich, da ich im Dialog eine Auswahl getroffen habe, möchte ich diese Variable gerne zum aufrufenden zurückgeben.
    Gruß
    Karl-Heinz

    jsulmJ JonBJ 2 Replies Last reply
    0
    • K kahemenne

      Hallo,
      Rückgabe heißt für mich, da ich im Dialog eine Auswahl getroffen habe, möchte ich diese Variable gerne zum aufrufenden zurückgeben.
      Gruß
      Karl-Heinz

      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #4

      @kahemenne Du kannst auf die umb Instanz zugreifen nachdem Dialog geschlossen wurde. Somit kannst du auf das public Interface von KatLst zugreifen:

      umb.show() # Eventuell musst du hier exec() benutzen statt show()
      umb.WAS_AUCH_IMMER() # Hier kannst du jetzt auf das public Interface von KatLst zugreifen
      sys.exit(app.exec())
      

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • K Offline
        K Offline
        kahemenne
        wrote on last edited by
        #5

        Hallo,
        erstmal Danke für die Antwort.
        Leider habe ich mich immer noch nicht vernüftig ausgedrückt.
        Ich meine wenn der Dilog beendet wird, soll eine Rückgabe erfolgen.
        Gruß
        Karl-Heinz

        JonBJ jsulmJ 2 Replies Last reply
        0
        • K kahemenne

          Hallo,
          erstmal Danke für die Antwort.
          Leider habe ich mich immer noch nicht vernüftig ausgedrückt.
          Ich meine wenn der Dilog beendet wird, soll eine Rückgabe erfolgen.
          Gruß
          Karl-Heinz

          JonBJ Online
          JonBJ Online
          JonB
          wrote on last edited by JonB
          #6

          @kahemenne
          Also:

          if umb.exec():
              ruckgabe = umb.etwas_aus_KatList_dialog()
          
          class KatList:
              def etwas_aus_KatList_dialog(self):
                  return self.widget.value()
                  # oder
                  return self.antwort
          
          1 Reply Last reply
          2
          • K kahemenne

            Hallo,
            erstmal Danke für die Antwort.
            Leider habe ich mich immer noch nicht vernüftig ausgedrückt.
            Ich meine wenn der Dilog beendet wird, soll eine Rückgabe erfolgen.
            Gruß
            Karl-Heinz

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #7

            @kahemenne said in Rückgabe von einem Unterfenster:

            Ich meine wenn der Dilog beendet wird, soll eine Rückgabe erfolgen.

            Das habe ich doch gezeigt?

            umb.exec() # Ich benutze hier exec() statt show(), exec() wird beendet sobald Dialog geschlossen wird
            umb.WAS_AUCH_IMMER() # Hier kannst du jetzt auf das public Interface von KatLst zugreifen
            sys.exit(app.exec())
            

            exec() gibt auch https://doc.qt.io/qt-6/qdialog.html#DialogCode-enum zurück falls es das ist was du brauchst:

            auto result = umb.exec();
            

            Man kann auch https://doc.qt.io/qt-6/qdialog.html#result benutzen.

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            1 Reply Last reply
            0
            • K kahemenne

              Hallo,
              Rückgabe heißt für mich, da ich im Dialog eine Auswahl getroffen habe, möchte ich diese Variable gerne zum aufrufenden zurückgeben.
              Gruß
              Karl-Heinz

              JonBJ Online
              JonBJ Online
              JonB
              wrote on last edited by JonB
              #8

              @kahemenne said in Rückgabe von einem Unterfenster:

              Rückgabe heißt für mich, da ich im Dialog eine Auswahl getroffen habe, möchte ich diese Variable gerne zum aufrufenden zurückgeben.

              QDialog::exec/result() can nur ein int zuruckgeben. Wenn Sie etwas anderes wollen, dann muessen Sie etwas benutzen wie ich es geshrieben habe :)

              1 Reply Last reply
              0
              • K Offline
                K Offline
                kahemenne
                wrote on last edited by
                #9

                Hallo JonB,
                entweder ich habe es nicht verstanden oder es funktioniert so nicht.
                umb.exec() ist doch erst erfüllt, wenn KatListDialog beendet wird.
                return beendet aber den Dialog nicht.
                Was ist wenn exec() erfüllt ist, kan man dann noch auf umb.etwas_aus_KatList_dialog() zugreifen?

                Ich bin total verwirrt.

                Gruß
                Karl-Heinz

                jsulmJ 1 Reply Last reply
                0
                • K kahemenne

                  Hallo JonB,
                  entweder ich habe es nicht verstanden oder es funktioniert so nicht.
                  umb.exec() ist doch erst erfüllt, wenn KatListDialog beendet wird.
                  return beendet aber den Dialog nicht.
                  Was ist wenn exec() erfüllt ist, kan man dann noch auf umb.etwas_aus_KatList_dialog() zugreifen?

                  Ich bin total verwirrt.

                  Gruß
                  Karl-Heinz

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #10

                  @kahemenne said in Rückgabe von einem Unterfenster:

                  umb.exec() ist doch erst erfüllt, wenn KatListDialog beendet wird

                  Richtig, und danach willst du auf das Ergebnis zugreifen, oder?
                  Und genau das wurde doch hier schon gezeigt, verstehe das Problem nicht.

                  "return beendet aber den Dialog nicht" - welches return?

                  "Was ist wenn exec() erfüllt ist, kan man dann noch auf umb.etwas_aus_KatList_dialog() zugreifen?" - das wurde doch ebenfalls schon gezeigt:

                  umb.exec() # Ich benutze hier exec() statt show(), exec() wird beendet sobald Dialog geschlossen wird
                  umb.WAS_AUCH_IMMER() # Hier kannst du jetzt auf das public Interface von KatLst zugreifen
                  sys.exit(app.exec())
                  

                  Oder von @JonB :

                  if umb.exec():
                      ruckgabe = umb.etwas_aus_KatList_dialog()
                  

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  1
                  • K Offline
                    K Offline
                    kahemenne
                    wrote on last edited by
                    #11

                    Hallo,
                    ich versuche meine Umgebung besser zu beschreiben:
                    ich habe eine KLasse mit meinem Main.Window.
                    Dort wird eine Weitere Klasse, abgeleitet von QDialog aufgerufen.
                    Von dieser Klasse möchte ich ein Ergebnis an die rufende Klasse zurückgeben.
                    Wenn ich die Klasse mit close() verlasse passiert garnichts.
                    Wenn ich die Klasse mit return verlasse passiert nichts.
                    D.h. ich komme garnicht den zweig rückgabe an.
                    Gruß
                    Karl-Heinz

                    jsulmJ 1 Reply Last reply
                    0
                    • K kahemenne

                      Hallo,
                      ich versuche meine Umgebung besser zu beschreiben:
                      ich habe eine KLasse mit meinem Main.Window.
                      Dort wird eine Weitere Klasse, abgeleitet von QDialog aufgerufen.
                      Von dieser Klasse möchte ich ein Ergebnis an die rufende Klasse zurückgeben.
                      Wenn ich die Klasse mit close() verlasse passiert garnichts.
                      Wenn ich die Klasse mit return verlasse passiert nichts.
                      D.h. ich komme garnicht den zweig rückgabe an.
                      Gruß
                      Karl-Heinz

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #12

                      @kahemenne said in Rückgabe von einem Unterfenster:

                      Von dieser Klasse möchte ich ein Ergebnis an die rufende Klasse zurückgeben.

                      Dann mach das doch? Von alleine wird es nicht passieren. Ich habe doch schon gezeigt wie man etwas von einem Objekt bekommen kann:

                      umb.exec()
                      umb.WAS_AUCH_IMMER() # Hier, an dieser Stelle, kannst du ja immer noch auf umb zugreifen
                      sys.exit(app.exec())
                      

                      "Wenn ich die Klasse mit return verlasse passiert nichts." - was genau soll denn passieren? Außerdem verlässt du nicht eine Classe mit return sondern Funktion/Methode. Und eine Funktion/Methode kann ein Ergebnis zurück geben an den Aufrufer:

                      def function():
                          return 1
                      
                      result = function()
                      

                      Genau das hat auch @JonB schon gezeigt.

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      2
                      • K Offline
                        K Offline
                        kahemenne
                        wrote on last edited by
                        #13

                        Hallo jsulm,
                        ich habe ein Objekt (hier QDialog) erzeugt und mit umb.exec() aufgerufen.
                        So weit so gut.
                        Mein Verständnis sagt, ich komme nur an die Zeile hinter exec wenn ich das Object beende. Oder?
                        Wenn das ich Objekt umb beendet habe, kann man doch keine Funktion mehr in umb ansprechen. Oder?

                        Gruß
                        Karl-Heinz

                        Christian EhrlicherC 1 Reply Last reply
                        0
                        • K kahemenne

                          Hallo jsulm,
                          ich habe ein Objekt (hier QDialog) erzeugt und mit umb.exec() aufgerufen.
                          So weit so gut.
                          Mein Verständnis sagt, ich komme nur an die Zeile hinter exec wenn ich das Object beende. Oder?
                          Wenn das ich Objekt umb beendet habe, kann man doch keine Funktion mehr in umb ansprechen. Oder?

                          Gruß
                          Karl-Heinz

                          Christian EhrlicherC Online
                          Christian EhrlicherC Online
                          Christian Ehrlicher
                          Lifetime Qt Champion
                          wrote on last edited by
                          #14

                          @kahemenne said in Rückgabe von einem Unterfenster:

                          Wenn das ich Objekt umb beendet habe, kann man doch keine Funktion mehr in umb ansprechen. Oder?

                          Nur weil du den Dialog schließt heißt es nicht, dass das Objekt welches den Dialog erzeugt gelöscht ist. Das Objekt lebt so lange bis Du es löscht und/oder der scope verlassen wurde und es automatisch gelöscht wird.

                          Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                          Visit the Qt Academy at https://academy.qt.io/catalog

                          1 Reply Last reply
                          2
                          • K Offline
                            K Offline
                            kahemenne
                            wrote on last edited by
                            #15

                            Danke Euch allen,
                            jetzt funktioniert es.
                            War eine schwere Geburt, aber jetzt funktioniert alles.
                            Recht herzlichen Dank.

                            Gruß
                            Karl-Heinz

                            1 Reply Last reply
                            0

                            • Login

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • Users
                            • Groups
                            • Search
                            • Get Qt Extensions
                            • Unsolved