• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

QT - nowe okno QDialog

Cloud VPS
0 głosów
701 wizyt
pytanie zadane 13 grudnia 2016 w C i C++ przez piter600 Użytkownik (610 p.)

Witam, mam następujący problem. Z głównego okna programu MainWindow otwieram sobie okno typu QDialog. Jak z tego QDialoga otworzyć kolejne okno typu QDialog, tak aby poprzedni QDialog sie zamknął? Zrobiłem to w następujący sposób ale nie działa (drugie okno QDIalog otwiera się na ułamek sekundy i oba Qdialogi się zamykają.

void MainWindow::on_Sparing_clicked()
{
    Sparing sparing;
    sparing.SetData(sciezkaDoZdjecia, idGracza);
    if (sparing.exec())
    {
        Mecz m;
        m.show();
    }
}

 

1 odpowiedź

0 głosów
odpowiedź 13 grudnia 2016 przez niezalogowany

Trzymaj wskaźnik do obecnie otwartego Dialogu, nulluj go przy zamykaniu dialogu. Jeżeli != NULL, to go zamykasz i tworzysz nowy, == NULL to tylko tworzysz, pseudo-qt:

/* MyWinodow.h
   QDialog* mydialog;
*/

// MyWindow.cpp
void MyWindow::on_mybutton_clicked()
{
  if(mydialog != NULL)
  {
    disconnect(mydialog, 0, 0, 0);
    mydialog->deleteLater();
  }

  mydialog = ... ; // przypisanie wskaźnika na nowy obiekt
  connect(mydialog, clicked(), this, on_my_button_clicked());
}

 

Podobne pytania

+1 głos
0 odpowiedzi 337 wizyt
pytanie zadane 23 sierpnia 2016 w C i C++ przez manjaro Nałogowiec (37,390 p.)
0 głosów
0 odpowiedzi 123 wizyt
pytanie zadane 11 grudnia 2016 w C i C++ przez piter600 Użytkownik (610 p.)
0 głosów
2 odpowiedzi 2,037 wizyt
pytanie zadane 30 kwietnia 2015 w C i C++ przez Linker Bywalec (2,690 p.)

93,487 zapytań

142,422 odpowiedzi

322,773 komentarzy

62,908 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...