2010-07-21 12 views

उत्तर

81

QWidget क्यूटी में सभी खींचने योग्य वर्गों के लिए आधार वर्ग है। कोई भी QWidget-आधारित कक्षा को दिखाए जाने पर विंडो के रूप में दिखाया जा सकता है जब उसके माता-पिता नहीं होते हैं।

QDialogQWidget पर आधारित है, लेकिन एक खिड़की के रूप में दिखाया गया है। यह हमेशा एक खिड़की में दिखाई देगा, और इसमें संवादों (स्वीकार, अस्वीकार, आदि) पर सामान्य बटन के साथ इसे अच्छी तरह से काम करने के लिए कार्य हैं।

QMainWindow मुख्य विंडो के लिए सामान्य आवश्यकताओं के आसपास डिज़ाइन किया गया है। इसमें मेन्यू बार, स्टेटस बार, टूलबार और अन्य विजेट्स के लिए पूर्वनिर्धारित स्थान हैं। इसमें QDialog जैसे बटनों के लिए कोई अंतर्निहित भत्ता नहीं है।

+0

मैंने इस प्रश्न की खोज की लेकिन वास्तव में वह उत्तर नहीं है जिसका मैं इंतजार कर रहा था। QMainWindow का उपयोग कर QtDesigner में आपको मेनू बार और स्टेटस बार देता है। जब आप स्वयं कोड लिखते हैं और QMainWindow का उपयोग करते हैं तो आपके पास यह चीजें नहीं हैं। या आपकी कहानियां कि आप window.addToolBar ("टूलबार") जैसी कुछ कर सकते हैं; और यह किसी भी अन्य सिरदर्द के बिना एक पूर्वनिर्धारित जगह पर रखेगा? –

+0

@MoraruLilian: मैं वास्तव में QMainWindow का उपयोग नहीं करता, इसलिए मुझे विवरण नहीं पता है। जैसा कि मैंने अपने जवाब में कहा था, मुझे पता है कि इसमें उनके लिए स्थान हैं, इसलिए कोड में ऐसा करना आपके जैसा सरल हो सकता है। –

+5

@Caleb_Huitt यह वही करता है जो मैं कह रहा हूं। मैं बस इतना स्पष्ट करना चाहता था कि आप यही कहने की कोशिश कर रहे हैं। वैसे भी, मैं हमेशा QMainWindow के बजाय QWidget का उपयोग करने की सलाह दूंगा। आप समस्याएं प्राप्त कर सकते हैं, उदाहरण के लिए एक और लेआउट सेट करने के साथ। यदि आप QMainWindow में एक नया लेआउट सेट करना चाहते हैं तो आपको QWidget बनाना होगा और इसे QMainWin के लिए केंद्रीय विजेट के रूप में सेट करना होगा और उसके बाद QWidget में आप Layout (QLayout *) सेट कर सकते हैं। जबकि आप QWidget का उपयोग कर अतिरिक्त सिरदर्द से बच सकते हैं। निश्चित रूप से, QMainWindow टूलबार और स्टेटसबार का आसान सेटअप प्रदान करता है लेकिन आप इसे स्वयं QWidget में कर सकते हैं ... –

संबंधित मुद्दे