Skocz do zawartości

[solved] Qt C++ Dziecko Zabija Rodzica


bunny1985

Rekomendowane odpowiedzi

Mam problem , którego nie wiem za bardzo jak obejść.

W mojej aplikacji mam main window , które chowa się do tacki(traya).

Teraz problem polega na tym ,że jeśli mam dziecko otwarte , a rodzica schowanego - zamknięcie dziecka zamyka całą aplikację :/

Dobrze wytłumaczyłem???

Jeśli rodzic widoczny to zamknięcie dziecka nie powoduje zamknięcia aplikacji,

Zaimplementowałem on close w rodzicu (ignore ) , ale to nie pomogło.

ANY IDEAS?

Odnośnik do komentarza
Udostępnij na innych stronach

class MainWindow : public QMainWindow{
.... //deklaracje
....

}



MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
  ui->setupUi(this);
    tacka = new QSystemTrayIcon(QIcon(":/status/offline"));
    tacka->show();
    connect(tacka, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this , SLOT(tacka_activated(QSystemTrayIcon::ActivationReason)));
}
void MainWindow::on_actionInfo_triggered()
{

    QMessageBox msg;
    msg.setTextFormat(Qt::RichText);
    msg.setIcon(QMessageBox::Information);
    msg.setText("siakiś tekst");
    msg.exec();
}

void MainWindow::closeEvent(QCloseEvent *event){

        event->ignore();
        

}

void MainWindow::tacka_activated(QSystemTrayIcon::ActivationReason reason){
    if(reason==QSystemTrayIcon::DoubleClick){ 
        if (this->isHidden()){
            this->show();

            this->setWindowState(Qt::WindowActive);

        }else{
               this->hide();
           }


    }
}

po schowaniu takiego okna i wyłączeniu okna dilogowego cała aplikcaja się zamyka

 

 

---------------------------

f*ck. Znalazłem

quitOnLastWindowClosed : bool

This property holds whether the application implicitly quits when the last window is closed.

 

The default is true.

 

If this property is true, the applications quits when the last visible primary window (i.e. window with no parent) with the Qt::WA_QuitOnClose attribute set is closed. By default this attribute is set for all widgets except for sub-windows. Refer to Qt::WindowType for a detailed list of Qt::Window objects.

 

 

app.setQuitOnLastWindowClosed(false);

Pomogło.Czasem jak isę cos wyartykułuje to łatwiej jest znaleźć rozwiązanie :)

 

 

Yyyyyy.... gdzie tu się dodaje <sloved>?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...