2013-10-18 5 views
5

मेरे पास एक क्यूटी गुई एप्लिकेशन है जो डॉक विजेट और समान आइटम का उपयोग करता है, जो उपयोगकर्ता स्वयं को समायोजित कर सकता है।क्यूटी गुई लेआउट को स्टोर करने और इसे पुनर्स्थापित करने के लिए

मैं चाहता हूं कि लेआउट एप्लिकेशन पुनरारंभ पर बने रहें। उपयोगकर्ता कॉन्फ़िगरेशन को सहेजने और लोड करने के लिए पहले से ही कुछ फ़ंक्शन हैं, लेकिन मुझे नहीं पता कि मैं एक लेआउट (डॉक्स की स्थिति, उनके आकार इत्यादि) कैसे स्टोर करूंगा, न ही मैं उन्हें कैसे पुनर्स्थापित करूंगा।

क्या ऐसा करने का कोई आसान तरीका है? या क्या मुझे प्रत्येक तत्व के आकार, स्थिति और स्थान की जांच करनी है और इसे अलग से स्टोर करना है?

उत्तर

8

अपने डॉक विंडोज लेआउट को संग्रहीत करने के लिए आप QMainWindow::saveState(int version) और QMainWindow::restoreState(const QByteArray &state, int version) का उपयोग QSettings कक्षा के साथ संयोजन में कर सकते हैं।

Qt docs से

उदाहरण:

void MyMainWindow::closeEvent(QCloseEvent *event) 
{ 
    QSettings settings("MyCompany", "MyApp"); 
    settings.setValue("geometry", saveGeometry()); 
    settings.setValue("windowState", saveState()); 
    QMainWindow::closeEvent(event); 
} 
+0

यह QSettings के अंदर होने के लिए है? मेरा अनुप्रयोग विन्यास को स्टोर करने के लिए एक्सएमएल का उपयोग करता है। – Petr

+1

@ पीटर: 'क्यूसेटिंग' का उपयोग करना एक आवश्यकता नहीं है। आप बाइट सरणी को प्रारूप और फ़ाइल में स्टोर कर सकते हैं जो आपके लिए सबसे सुविधाजनक है। मुख्य बिंदु 'saveState()' और 'restoreState()' फ़ंक्शंस का उपयोग कर रहा है जो 'QByteArray' का उपयोग करते हैं। – vahancho

+0

यह सिर्फ काम नहीं करता है :(क्या मुझे पहले gui बनाना चाहिए और फिर इसे कॉल करना चाहिए या फिर उसे कॉल करना चाहिए और फिर gui बनाना चाहिए? (मैंने विजुअल एडिटर में डॉक विजेट्स का लेआउट नहीं बनाया है, लेकिन यह स्रोत कोड में है) – Petr

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

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