1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

C++ - Brauche dringend Hilfe!

  • soul
  • 27. Januar 2010 um 17:22
  • Unerledigt
  • soul
    3
    soul
    Mitglied
    Punkte
    55
    Beiträge
    9
    • 27. Januar 2010 um 17:22
    • #1

    Hallo zusammen,
    also ich hab da ein C++-Programm erstellt in Qt.
    Das Programm kann Patientendaten sowie das zugehörige EKG anzeigen.
    Bisher funktioniert es so: Wenn ich das Programm starte, erscheint das Hauptfenster (leeres Fenster mit Menü). Wenn ich auf "öffnen" klicke, öffnet sich ein Dialog um das EKG-Signal auszuwählen und das kann ich dann auf dem Hauptfenster anzeigen lassen. Dann kann ich auch von dem EKG-Signal verschiedene Abschnitte (Segmente) anzeigen lassen.
    Wenn ich jetzt auf schliessen klicke, erscheint wieder das Hauptfenster. Wenn ich dann wieder ein Signal öffnen möchte kommt auch wieder Dialog um ein Signal auszuwählen.
    PROBLEM: aber wenn ich ein Signal jetzt auswähle, wird es nicht mehr angezeigt.

    Kann mir da BITTE jemand sagen wo mein Fehler liegt?

    Mein Code:

    Code
    void MainWindow::on_actionDatei_Oeffnen_triggered()
      {
          QString fileName;
          fileName = QFileDialog::getOpenFileName(this,tr("Biosignal öffnen"),
                     "/home/", "Biosignal-Dateien (*.sig)");
          patient = new Patient();
          patient->DateiLesen(fileName);
          setWindowTitle(patient->getVorname()
                         + " " + patient->getNachname()
                         + " " + patient->getGeburtsdatum().toString("dd.MM.yyyy")
                         + ":" + patient->getMessungsart() + " ");
          ui->widget->setStart(0); //setzt den Startpunkt des Signals
          ui->widget->setEnd(700); //setzt den Endpunkt des ersten Segments
                                              //auf die Größe des Fenster
          ui->widget->setSegment(1); //setzt das erste Segment (den ersten
                                                 //Abschnitt)
          ui->widget->setFixedSize(700,500);
          ui->widget->setSignalwerte(patient->getSignalwerte());
          ui->widget->update();
      }
    
      void MainWindow::on_actionDatei_Schliessen_triggered()
      {
          setWindowTitle("EKGViewer");
          QVector <float> signalwerte;
          patient->setSignalwerte(signalwerte);
          ui->widget->close();
          ui->widget->update();
      }
    Alles anzeigen

    Danke im Voraus!

  • michi204
    26
    michi204
    Mitglied
    Reaktionen
    63
    Punkte
    7.268
    Beiträge
    1.318
    • 27. Januar 2010 um 18:02
    • #2

    ich weiß nicht, was für ein objekt widget ist, aber wenn du darauf close() aufrufst ist es danach vermutlich nicht mehr ohne weiteres verwendbar, sofern es den event verarbeitet. ich versteh auch nicht ganz warum du danach noch mal update() aufrufst oder warum du davor noch schnell die signalwerte setzt.

    lg

  • soul
    3
    soul
    Mitglied
    Punkte
    55
    Beiträge
    9
    • 27. Januar 2010 um 18:15
    • #3

    also das widget ist der Teil des Fensters, in dem das Signal angezeigt wird. Das mit den Signalwerten stimmt natürlich, die sind unnötig.
    Wie kann ich das denn jetzt aber machen, das ich ein neues Signal wieder öffnen kann?

    Gruss

  • yrucrem
    4
    yrucrem
    Mitglied
    Reaktionen
    4
    Punkte
    129
    Beiträge
    25
    • 27. Januar 2010 um 19:28
    • #4

    Vermutlich wuerde es reichen, wenn Du QWidget::show() und QWidget::hide() verwendest um das Widget, das das Signal anzeigt, zu "oeffnen" und zu "schlieszen".

    Damn, here I was, minding my own business, just enjoying my second amendment rights, and you people have to FREAK out on me!

  • soul
    3
    soul
    Mitglied
    Punkte
    55
    Beiträge
    9
    • 27. Januar 2010 um 20:42
    • #5

    durch QWidget::hide wird aber das ganze Programm beendet und das Fenster geschlossen.
    Ich wollte es so haben, dass nur das Signal geschlossen wird und ich dann wieder ein neues Signal öffnen kann. Im Moment kann ich das Signal zwar schliessen, aber kein neues mehr öffnen.

  • soul
    3
    soul
    Mitglied
    Punkte
    55
    Beiträge
    9
    • 28. Januar 2010 um 18:20
    • #6

    habs jetzt selber rausbekommen..trotzdem danke

  • Kampi
    27
    Kampi
    Mitglied
    Reaktionen
    193
    Punkte
    7.828
    Beiträge
    1.468
    • 28. Januar 2010 um 18:26
    • #7

    und waerst du bitte so nett uns die loesung mitzuteilen?

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • soul
    3
    soul
    Mitglied
    Punkte
    55
    Beiträge
    9
    • 28. Januar 2010 um 20:58
    • #8

    ganz einfach eigentlich. also ich hab das mit setVisible gemacht. fürs schliessen der datei einmal false gesetzt und fürs öffnen der datei wieder true gesetzt. jetzt funktionierts

  • bimbo
    15
    bimbo
    Mitglied
    Reaktionen
    15
    Punkte
    2.320
    Beiträge
    390
    • 29. Januar 2010 um 09:38
    • #9

    Wenn ich nur kurz in die Doku von Qt 4.2 reinschnupper, dann sehe ich:

    Zitat

    void QWidget::hide () [slot]
    Hides the widget. This function is equivalent to setVisible(false).

    void QWidget::show () [slot]
    Shows the widget and its child widgets. This function is equivalent to setVisible(true).

    LVA Erfahrungsberichte: http://vowi.fsinf.at/

  • yrucrem
    4
    yrucrem
    Mitglied
    Reaktionen
    4
    Punkte
    129
    Beiträge
    25
    • 29. Januar 2010 um 09:54
    • #10

    Dachte ich auch, ja ;-).

    Damn, here I was, minding my own business, just enjoying my second amendment rights, and you people have to FREAK out on me!

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung