2009-08-16 12 views
6

Chcę utworzyć okno wyskakujące Qt, które będzie zachowywać się jak okno komunikatu w Qt. Oznacza to, że reszta GUI musi zostać zablokowana, dopóki to okno nie zostanie zwolnione. To może być pytanie dziecka, ale czy ktoś może mi w tym pomóc?Jak stworzyć okno Qt zachowywać się jak okno wiadomości?

dzięki ... :)

Edit:

Chcę korzystać z formularzy, etykiet, przyciski i kilka innych typów widżetów w tym oknie popup.

Odpowiedz

17

Modal Dialogs

modalnego okna dialogowego jest dialog, który blokuje wejście do innych widocznych okien w samej aplikacji. Użytkownicy muszą zakończyć działanie wchodząc w interakcję z oknem dialogowym i zamykając je przed uzyskaniem dostępu do dowolnego innego okna w aplikacji. Okna dialogowe używane do żądania nazwy pliku od użytkownika lub używane do ustawiania preferencji aplikacji są zwykle modalne w trybie .

Najpopularniejszym sposobem wyświetlenia modalnego okna dialogowego jest wywołanie jego funkcji exec(). Gdy użytkownik zamknie okno dialogowe, exec() zapewni użyteczną wartość zwrotu: . Zazwyczaj, aby zamknąć okno dialogowe i uzyskać odpowiednią wartość , podłączamy domyślny przycisk: , np. "OK", do gniazda akceptacji() i przycisku "Anuluj" do gniazda reject(). Możesz też zadzwonić do gniazda done() za pomocą Accepted or Rejected.

Alternatywą jest wywołanie setModal (true) lub setWindowModality(), następnie show(). W przeciwieństwie do exec(), show() natychmiast zwraca kontrolę do dzwoniącego . Wywołanie setModal (true) to , szczególnie przydatne dla okien dialogowych postępu , gdzie użytkownik musi mieć możliwość interakcji z oknem dialogowym na , np. . aby anulować długą operację . Jeśli używasz show() i setModal (true) razem wykonać długą operację, musisz zadzwonić QApplication :: processEvents() okresowo podczas przetwarzania na pozwalają użytkownikowi na interakcję z okna na . (Zobacz QProgressDialog).

+0

Dzięki za przypomnienie .. Spróbuję .. – Morpheus

+0

tak ... właśnie tego chcę. Dziękuję Ci bardzo.. – Morpheus