Odpowiedzi:
A QWidgetjest klasą bazową dla wszystkich klas rysowalnych w Qt. Dowolną QWidgetklasę bazującą można wyświetlić jako okno, pokazując ją, gdy nie ma rodzica.
QDialogOpiera się na QWidget, ale przeznaczone do pokazany jako okno. Zawsze pojawi się w oknie i ma funkcje, które sprawiają, że dobrze współpracuje z typowymi przyciskami w oknach dialogowych (zaakceptuj, odrzuć itp.)
QMainWindowjest zaprojektowany wokół typowych potrzeb, jakie musi mieć okno główne. Ma predefiniowane miejsca na pasek menu, pasek stanu, pasek narzędzi i inne widżety. Nie ma żadnych wbudowanych limitów dla przycisków, takich jak QDialogma.
QMainWindowzamiast tylko klasy bazowej, QWidgetjest to, że QMainWindowma QDockWidgetwsparcie, podczas gdy QWidgetsam nie
QWidget : jest klasą bazową dla wszystkich innych elementów GUI w module QtWidgets. Może stanowić samo okno, być częścią QLayout lub tylko członkiem hierarchii nadrzędny-podrzędny.
QDialog : jest zwykle używany do - niespodzianka! - wyświetla tymczasowe okno dialogowe, gdy wymagane jest wprowadzenie danych przez użytkownika.
QMainWindow : to wygodna klasa, której można używać jako głównego okna aplikacji. Ma wbudowane kilka fajnych funkcji: pasek stanu, paski narzędzi i pasek menu