Dialog / Qt::WindowStaysOnTopHint

Alles rund um die Programmierung mit Qt
Antworten
carre
Beiträge: 15
Registriert: 28. Juni 2014 13:59

Dialog / Qt::WindowStaysOnTopHint

Beitrag von carre »

Hi,

in einem Dialog Window habe ich eine Checkbox (checked = true) wenn ich die Checkbox abwähle - wird der Dialog geschlossen.

Code: Alles auswählen

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    this->setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
}
Dialog::~Dialog()
{
    delete ui;
}
void Dialog::on_checkBox_clicked(bool checked)
{
    if (checked) {
      this->setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
    } else {
      this->setWindowFlags(windowFlags() & ~Qt::WindowStaysOnTopHint);
    }
}
Hat jemand eine Idee warum der Dialog geschlossen wird? (keine Verbindung clicked -> accept() usw., Default Dialog Window)

Danke und Gruß
Thomas

// Qt 5.9.1 , Win10
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Dialog / Qt::WindowStaysOnTopHint

Beitrag von Christian81 »

Ein minimales, kompilierbares Beispiel wäre nicht schlecht.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
carre
Beiträge: 15
Registriert: 28. Juni 2014 13:59

Re: Dialog / Qt::WindowStaysOnTopHint

Beitrag von carre »

Hi,

anbei ein kleines Beispiel.

Danke und Gruß
Thomas
test_win_flag.zip
(3.53 KiB) 345-mal heruntergeladen
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Dialog / Qt::WindowStaysOnTopHint

Beitrag von Christian81 »

Hallo,

ich kann das Problem reproduzieren, sehe auch, dass bei einem Reparenting (was hier der Fall ist) das Fenster mittels hide() geschlossen wird, sehe aber nicht wo es wieder geöffnet werden sollte (unter dem neuen Parent). Ich glaube das ist nötig um ein Fenster von Desktop 1 auf Desktop 2 verschieben zu können. So auf die Schnelle habe ich keine Idee außer einem 'show()' nach dem Setzen der Window-Flags.
Zur richtigen Lösung müsstest Du einen Bugreport bei Qt anlegen -> https://bugreports.qt.io/secure/Dashboard.jspa
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
carre
Beiträge: 15
Registriert: 28. Juni 2014 13:59

Re: Dialog / Qt::WindowStaysOnTopHint

Beitrag von carre »

Ok - Vielen Dank!

Gruß Thomas
Antworten