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

Qt nowe okno nie za dobrze działa

VPS Starter Arubacloud
0 głosów
363 wizyt
pytanie zadane 24 marca 2016 w C i C++ przez niezalogowany

Witam, stworzyłem w moim projekcie nowe okno a dokładnie QWidget i jest taka sprawa, że zrobiłem 

void Magazyn::on_actionKomponent_triggered()
{
  Dodaj d;
  d.show();
}

i pokazuje się okno, jest całe białe nie wiem czemu i znika tak o nie wiadomo czemu.

2 odpowiedzi

0 głosów
odpowiedź 24 marca 2016 przez mariush Dyskutant (7,860 p.)

Problem polega na tym, że twoje okno istnieje tylko w metodzie on_actionKomponent_triggered() i gdy program wychodzi z tej metody to obiekt d jest usuwany. Dlatego twoje okno znika.

Jeśli to okno dialogowe to lepiej użyć klasy QDialog i metody exec().

komentarz 24 marca 2016 przez niezalogowany
To jest QWidget dlatego ze cos będę tam robić. To jak mógłbym to zrobić??
komentarz 24 marca 2016 przez mariush Dyskutant (7,860 p.)
Swtórz ten obiekt poza tą metodą dzięki czemu nie będzie niszczony po wyjściu z funkcji.
komentarz 24 marca 2016 przez niezalogowany
W pliku .h glownej klasy??
komentarz 24 marca 2016 przez mariush Dyskutant (7,860 p.)
Możesz go stworzyć jako prywatny wskaźnik na ten obiekt w pliku .h a następnie w jakiejś metodzie alokujesz pamięć = new Okno(this). Potem możesz używać metod show() i hide() żeby pokazywać i ukrywać okno.
komentarz 24 marca 2016 przez niezalogowany
Nie wiedziałem, dzieki :) a to ze jak sie wyświetlało i byli całe białe to normalne?? Bo juz cos mam tam ustawione
komentarz 24 marca 2016 przez mariush Dyskutant (7,860 p.)
Jest ok. Po prostu od razu znikało i nie zdążyło wyswietlic zawartości.
komentarz 24 marca 2016 przez niezalogowany
Aaa... No ok, jutro to sprawdzę i dam znać co i jak
0 głosów
odpowiedź 24 marca 2016 przez chomek Gaduła (4,500 p.)
Do czego będziesz tego okna używać jeśli ma to być jakiś dialog do pobierania/ wyświetlania danych etc. to zamiast QWidget zrób swój własny dialog (QDialog) a jeśli ma to być coś co będzie pełniło inną "Większą role w programie" to zastosuj się do porady mariush :)
komentarz 24 marca 2016 przez niezalogowany
W tym nowym oknie chce wykonywać pewne akcje, dowiedziałem się że na QWidget będzie najlepiej to robic, ale ile w tym prawdy to nie wiem.
komentarz 24 marca 2016 przez chomek Gaduła (4,500 p.)
Jakiego typu akcje ?
komentarz 24 marca 2016 przez niezalogowany
Wybranie kilku rzeczy, jakies operacje na nich, wyszukanie ich itp
komentarz 24 marca 2016 przez chomek Gaduła (4,500 p.)
Jeśli to okno będzie wyświetlane raz na jakiś czas i będzie miało za zadanie wykonanie jakiś prostych czynośći ( nie będzie wykorzystywanie cały czas w programie) np wyszkukiwanie i podmienianie tekstu itp to zastosowanie QDialog będzie dobrym pomysłem
komentarz 25 marca 2016 przez niezalogowany
To kiedy używać QDialog a kiedy QWidget
komentarz 25 marca 2016 przez chomek Gaduła (4,500 p.)
QDialog używasz kiedy np. chcesz porbrać ścieżke do pliku, dane do połączenia do bazy, chcesz wyświetlić jakiś komunikat np error (coś co ma się wyświetlić w osobnym oknie),  tak jak wspomniałem wyżej może to być okno które znajduje i podmienia tekst albo jakieś ustawienia aplikacji typu czcionka kolor styl tekstu itp.
komentarz 25 marca 2016 przez niezalogowany
a QWidget w innych sytuacjach tak??
komentarz 25 marca 2016 przez chomek Gaduła (4,500 p.)
Tak w większośći ale np do bardziej rozbudowanych ustawień typu takich jakie ma codeblocks czy qtCreator można pomyśleć nad wykorzystaniem QWidget podumowująć i cytująć stackoverflowa:

A QWidget is the base class for all drawable classes in Qt. Any QWidget-based class can be shown as a window by showing it when it has no parent.

A QDialog is based on QWidget, but designed to be shown as a window. It will always appear in a window, and has functions to make it work well with common buttons on dialogs (accept, reject, etc.).
komentarz 25 marca 2016 przez niezalogowany
kumam to, dzięki

Podobne pytania

+1 głos
0 odpowiedzi 293 wizyt
pytanie zadane 23 sierpnia 2016 w C i C++ przez manjaro Nałogowiec (37,390 p.)
0 głosów
1 odpowiedź 231 wizyt
pytanie zadane 26 czerwca 2021 w C i C++ przez Alkaratus Nowicjusz (160 p.)
0 głosów
0 odpowiedzi 121 wizyt

92,775 zapytań

141,703 odpowiedzi

320,567 komentarzy

62,109 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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...