पर अलग यूआई विजेट जोड़ने के लिए मैंने हाल ही में प्रोग्रामिंग और पायथन (पीईक्यूटी) विशेष रूप से शुरू किया है। मेरे पास मेरा मुख्य QMainWindow
वर्ग है। लेकिन मैं इसे यूआई विगेट्स से अलग करना चाहता था, ताकि सभी विंडोज़ सामान (मेनू, टूलबार, सामान्य बटन) QMainWindow
में हों, लेकिन सभी प्रोग्राम/यूआई विशिष्ट विजेट (पुसबूटन, कंबोबॉक्स, इमेजेस, चेकबॉक्स इत्यादि) अलग QWidget
में हैं कक्षा। लेकिन मुझे यकीन नहीं है कि मैं यह सही कर रहा हूं।पीईक्यूटी - QMainWindow
- मैं लेआउट के साथ एक समस्या है - कुछ अदृश्य मेनू को कवर किया जाता है, ताकि वे माउस द्वारा क्लिक करने योग्य नहीं कर रहे हैं, मुझे लगता है कि मैं सही ढंग से मुख्य विंडो पर मेरी यूआई विजेट जोड़कर नहीं कर रहा हूँ
यहां बताया गया है कि मैं यह कर:
class MyMainWindow(QMainWindow):
def __init__(self, parent = None):
super(MyMainWindow, self).__init__(parent)
self.main_widget = QWidget(self)
...
self.form_widget = FormWidget(self)
#This is my UI widget
self.main_layout = QVBoxLayout(self.main_widget)
self.main_layout.sizeConstraint = QLayout.SetDefaultConstraint
self.main_layout.addWidget(self.form_widget.main_widget)
#form_widget has its own main_widget where I put all other widgets onto
self.main_widget.setLayout(self.main_layout)
self.setCentralWidget(self.main_widget)
- मैं अन्य अजगर कार्यक्रमों जहां अनुप्रयोगों कोड के छोटे फ़ाइलों का एक बहुत में तोड़ा जाता है (जैसा कि मैंने यह समझने देखा है, पर में मुख्य वर्ग पढ़ने योग्य नहीं है सब कुछ होने के या अप्रबंधनीय)।
छोटे टुकड़ों में कोड तोड़ने के बारे में आपका सुझाव क्या है? यह बेहतर कैसे किया जाता है? या यूआई के लिए यह सब एक बड़ी जगह में हो सकता है? क्या मुझे यूआई कोड/कक्षाओं को अलग फाइल में तोड़ना चाहिए?
धन्यवाद।
[हल]
मैं अपनी गलती पाया - मैं यूआई विजेट वर्ग से main_widget (अब सभी UI विजेट्स यूआई वर्ग विजेट पर ही सीधे रखा जाता है) और ऐसा केवल तभी कर नष्ट कर दिया:
self.main_layout.addWidget(self.form_widget)
मेनू के साथ कोई और समस्या नहीं
मुझे मेरी गलती मिली है। मैंने UI विजेट से main_widget को हटा दिया है और खुद को अन्य सभी छोटे विगेट्स (बटन, एडिटलाइन इत्यादि) के लिए होल्डिंग विजेट के रूप में उपयोग किया है, और मुख्य वर्ग बस यूआई विजेट (ऊपर देखें) को तुरंत चालू करता है - मेनू समस्या हल हो जाती है। – linuxoid