Bug (?) ze znikającym dialogiem

0

Mam dość nietypowy problem, związany jest on docelowo z platformą linux, a dokładniej Ubuntu (choć podejrzewam że występuje na również innych dystrybucjach). Testowałem to w kilku środowiskach: Plasma, Unity, Gnome. Problem da się dość łatwo przedstawić:

#include <QtWidgets>
#include <QtGui>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QWidget w;
    QDialog d(&w);
    QTimer::singleShot(1000, [&] { w.show(); });
    QTimer::singleShot(2000, [&] { d.show(); });
    QTimer::singleShot(3000, [&] { w.showMinimized(); });
    QTimer::singleShot(4000, [&] { w.hide(); });
    QTimer::singleShot(5000, [&] { w.show(); });
    QTimer::singleShot(6000, [&] { w.showNormal(); });
    a.exec();
}

Po kolei:

  1. pojawia się okienko w.
  2. pojawia się dialog d.
  3. w minimalizuje się razem z d.
  4. hide() chowa okienko główne z paska razem z dialogiem.
  5. show() znów pokazuje okienko zminimalizowane.
  6. showNormal() przywraca okienko.

Problem polega na tym, że chociaż główne okno jest tam gdzie powinno być, to dialog zniknął. Nie ma go. Nie pojawia się z powrotem. Próby wywoływania show, showNormal itp. na dialogu nie przynoszą rezultatu. Dodam jeszcze że na windowsie ten problem nie występuje w ogóle; zgodnie z oczekiwaniami wszystko jest na swoim miejscu.

Czy robię coś źle, czy to bug, czy wina mojego systemu? CIężko mi określić i do końca nie wiem co z tym zrobić. Problem jest bardzo uciążliwy, łamie kluczową funkcjonalność w aplikacjach korzystających z obszaru tray.

EDIT:
Qt jest w wersji 5.9.2

0

sprawdzałem na ubu 18.04 i działa tak jak opisujesz, szybko rzuciłem okiem na dokumentację i możliwe że coś trzeba by na flagach poprzestawiać. Postaram się w ciągu tygodnia spojrzeć.

0

No dobra to skoro nikt nie ma pomysłu, to co zrobić z tym dalej? SO, Qt Centre albo qt.io? A może zgłoszenie buga? Ktoś coś poradzi co w takiej sytuacji najlepiej zrobić?

0

Najlepiej by było tu – http://qtcentre.org/forum.php. Tym bardziej, jeśli przebywają tam ludzie odpowiedzialni za kod tej biblioteki. Opisz dokładnie problem, podaj wszystkie ważne informacje i daj kod reprodukujący błąd.

0

Chcesz się bawić zasobnikiem aplikacji Bracie,to obczaj http://doc.qt.io/qt-5/qsystemtrayicon.html
Natomiast co do znikania i pokazywania się - obczaj sobie http://doc.qt.io/qt-5/qt.html#WindowType-enum w korelacji z używanym systemem operacyjnym.Nie jest wykluczone,że na linuksie coś zrypali,i zależność pokazywania okna potomnego kiedy jego rodzic się pokazuje nie zawsze jest zachowana,albo wymaga dodatkowych warunków.

0
MasterBLB napisał(a):

Chcesz się bawić zasobnikiem aplikacji Bracie,to obczaj http://doc.qt.io/qt-5/qsystemtrayicon.html
Natomiast co do znikania i pokazywania się - obczaj sobie http://doc.qt.io/qt-5/qt.html#WindowType-enum w korelacji z używanym systemem operacyjnym. Nie jest wykluczone, że na linuksie coś zrypali,i zależność pokazywania okna potomnego kiedy jego rodzic się pokazuje nie zawsze jest zachowana, albo wymaga dodatkowych warunków.

miałem to sprawdzić i zapomniałem ale to o czym piszesz mniej więcej wspominano w jednym z tematów o qt na stacku albo qtcenter. Dlatego wspominałem w swoim poście o flagach ale zapomniałem sprawdzić i podrążyć. Za dwa tygodnie będę miał cza dopiero na drążenie :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1