Jawaban:
A QWidgetadalah kelas dasar untuk semua kelas drawable di Qt. QWidgetKelas berbasis apa saja dapat ditampilkan sebagai jendela dengan menampilkannya jika tidak memiliki induk.
A QDialogdidasarkan pada QWidget, tetapi dirancang untuk ditampilkan sebagai jendela. Ini akan selalu muncul di jendela, dan memiliki fungsi untuk membuatnya berfungsi dengan baik dengan tombol umum pada dialog (terima, tolak, dll.).
QMainWindowdirancang berdasarkan kebutuhan umum yang dimiliki jendela utama. Ini memiliki tempat yang telah ditentukan untuk bilah menu, bilah status, bilah alat, dan widget lainnya. Itu tidak memiliki tunjangan built-in untuk tombol seperti QDialogitu.
QMainWindowdaripada hanya kelas dasar QWidgetadalah yang QMainWindowmemiliki QDockWidgetdukungan sedangkan QWidgetsendirian tidak
QWidget : adalah kelas dasar untuk semua elemen GUI lainnya dalam modul QtWidgets. Ini bisa merupakan jendela dengan sendirinya, atau menjadi bagian dari QLayout, atau hanya anggota hierarki orang tua-anak.
QDialog : biasanya digunakan untuk - kejutan! - menampilkan dialog sementara saat input pengguna diperlukan.
QMainWindow : adalah kelas praktis yang dapat digunakan sebagai jendela utama aplikasi Anda. Ini memiliki beberapa fitur bagus bawaan: bilah status, bilah alat, dan bilah menu