Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. Nach Verstecken eines Zweitfensters im Hauptfenster Methode ausführen
QtWS25 Last Chance

Nach Verstecken eines Zweitfensters im Hauptfenster Methode ausführen

Scheduled Pinned Locked Moved German
2 Posts 2 Posters 2.2k Views
  • 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.
  • T Offline
    T Offline
    Thunaer
    wrote on last edited by
    #1

    Hallo.
    [OffTopic]
    Dies ist mein erster Post in diesem Forum und wird wohl auch nicht mein letztes sein.
    Ich habe diese Woche Qt entdeckt, da ich mein aktuelles Projekt betriebssystemunabhängig programmieren möchte und mir für eben dies Qt mehrfach empfohlen wurde. Nun habe ich mich in den letzten Tagen recht gut zurecht gefunden und so einige Seiten in den Helpfiles gelesen und konnte meine Probleme bisher auch immer irgendwie selber lösen.
    So nun zu meiner Frage:
    [/OffTopic]

    Ich habe ein Hauptfenster, welches im Konstruktor ein weiteres Fenster erstellt, dass dann wiederrum durch Buttonclick angezeigt wird.
    Nun möchte ich, wenn das zweite Fenster geschlossen, bzw wieder versteckt wird, dass im Hauptfenster eine Methode aufgerufen wird. (Im 2. Fenster werden Ordner gewählt, und zu einer Liste hinzugefügt. Diese Liste soll dann im Hauptfenster nach Dateien durchsucht werden)
    Es wäre wohl eine Möglichkeit, wenn das 2. Fenster vom 1. erbt, das möchte ich aber nicht machen, da das erste Fenster dann hinterher zu einem eigenem Widget umfunktioniert werden soll und das 2. Fenster eben auch.
    Ich stehe da wirklich auf dem Schlauch. Es muss doch eine Möglichkeit geben, zwischen 2 Fenstern zu "kommunizieren".

    Danke schonmal im Vorraus für Antworten und ich hoffe, dass die frage nicht zu dumm ist

    Um es ein wenig verständlicher zu machen:

    1. Fenster:
      @MediaLibrary::MediaLibrary(QWidget *parent)
      {
      optionsBtn = new QPushButton(tr("Optionen"), this);
      optionsBtn->setGeometry(QRect(QPoint(340, 570), QSize(120, 25)));
      connect(optionsBtn, SIGNAL(clicked()), this, SLOT(showOpts()));

      optGUI = new OptionsGUI(this);
      }

    void MediaLibrary::showOpts(void)
    {
    optGUI->show();
    }
    @

    Hier das Zweite:
    @
    OptionsGUI::OptionsGUI(QWidget *parent) :
    QMainWindow(parent)
    {
    closeBtn = new QPushButton(tr("Schließen"), this);
    connect(closeBtn, SIGNAL(clicked()), this, SLOT(close()));
    }

    void OptionsGUI::close()
    {
    //hier dem Hauptfenster mitteilen, dass es was machen soll
    this->hide();
    }
    @

    1 Reply Last reply
    0
    • M Offline
      M Offline
      miroslav
      wrote on last edited by
      #2

      "Fenster" sind kein eigenständiges Konzept in Qt. Fenster sind angezeigte QWidgets, die keinen Parent haben. Die Kommunikation zwischen Widgets erfolgt üblicherweise über Signale und Slots, die hast du schon verwendet. Soweit gut :-)

      OptionsGUI kann zum Beispiel ein Signal verwenden, in dem die ausgewählten Ordner als Stringliste enthalten sind. MediaLibrary kann auf dieses Signal verbinden.

      Wichtig ist zu wissen, dass im Single-Thread-Fall (wie hier im Beispiel) Slot-Aufrufe synchron sind. Das heisst, wenn in OptionsGUI::close ein "emit selectedFolders(Folders);" ausgeführt wird, wird der entsprechende Slot in MediaLibrary ausgeführt, bevor das emit-Statement zurückkehrt.

      OptionsGUI könnte sich auch den Zeiger auf MediaLibrary merken. Das würde aber eine Kopplung der beiden Klassen bedeuten, die vielleicht unnötig ist.

      Mirko Boehm | mirko@kde.org | KDE e.V.
      FSFE Fellow
      Qt Certified Specialist

      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