जवाबों:
A QWidget, Qt में सभी ड्रा करने योग्य वर्गों के लिए आधार वर्ग है। किसी भी QWidgetअभिभावक वर्ग को खिड़की के रूप में तब दिखाया जा सकता है जब उसे कोई अभिभावक न हो।
A QDialogपर आधारित है QWidget, लेकिन इसे एक विंडो के रूप में दिखाया गया है। यह हमेशा एक विंडो में दिखाई देगा, और इसमें संवादों (स्वीकार, अस्वीकार आदि) पर सामान्य बटन के साथ अच्छी तरह से काम करने के लिए कार्य हैं।
QMainWindowएक मुख्य खिड़की के लिए आम जरूरतों के आसपास बनाया गया है। इसमें मेन्यू बार, स्टेटस बार, टूलबार और अन्य विजेट्स के लिए पूर्वनिर्धारित स्थान हैं। इसमें बटन की तरह कोई अंतर्निहित भत्ता QDialogनहीं है।
QMainWindowसिर्फ बेस क्लास के बजाय उपयोग करना चाहते हैं, QWidgetवह है QMainWindowजिसका QDockWidgetसमर्थन है जबकि QWidgetअकेले नहीं है
QWidget : QtWidgets मॉड्यूल में अन्य सभी GUI तत्वों के लिए एक बेस क्लास है। यह अपने आप से एक खिड़की का गठन कर सकता है, या एक QLayout का हिस्सा हो सकता है, या सिर्फ माता-पिता-बच्चे पदानुक्रम का सदस्य हो सकता है।
QDialog : आमतौर पर उपयोग किया जाता है - आश्चर्य! - उपयोगकर्ता इनपुट की आवश्यकता होने पर एक अस्थायी संवाद प्रदर्शित करें।
QMainWindow : एक सुविधा वर्ग है जिसे आपके एप्लिकेशन की मुख्य विंडो के रूप में उपयोग किया जा सकता है। इसमें कुछ अच्छी विशेषताएं अंतर्निहित हैं: एक स्टेटस बार, टूल बार और एक मेनू बार