PyQt5 Tutorials

PyQt5 QGridLayout में महारथ: एक व्यापक ट्यूटोरियल

Spread the love

यह ट्यूटोरियल लचीले और व्यवस्थित यूजर इंटरफेस बनाने के लिए PyQt5 के शक्तिशाली QGridLayout के उपयोग का व्यापक मार्गदर्शन प्रदान करता है। हम मूल बातें, सेल को फैलाने और विजेट स्ट्रेचिंग को नियंत्रित करने जैसी उन्नत तकनीकों को कवर करेंगे, और आपकी समझ को मजबूत करने के लिए व्यावहारिक उदाहरण प्रदान करेंगे।

विषयवस्तु की तालिका

  1. QGridLayout का मूल उपयोग
  2. कई सेल को फैलाना
  3. विजेट स्ट्रेचिंग को नियंत्रित करना
  4. उन्नत तकनीकें और विचार

1. QGridLayout का मूल उपयोग

QGridLayout विजेट्स को पंक्तियों और स्तंभों के ग्रिड में व्यवस्थित करता है। प्रत्येक विजेट डिफ़ॉल्ट रूप से एकल सेल पर कब्जा कर लेता है। आइए एक सरल उदाहरण से शुरुआत करें:


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 ग्रिड लेआउट उदाहरण")

layout = QGridLayout()

button1 = QPushButton("बटन 1")
button2 = QPushButton("बटन 2")
button3 = QPushButton("बटन 3")
button4 = QPushButton("बटन 4")

layout.addWidget(button1, 0, 0)  # पंक्ति 0, स्तंभ 0
layout.addWidget(button2, 0, 1)  # पंक्ति 0, स्तंभ 1
layout.addWidget(button3, 1, 0)  # पंक्ति 1, स्तंभ 0
layout.addWidget(button4, 1, 1)  # पंक्ति 1, स्तंभ 1

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

यह बटनों का 2×2 ग्रिड बनाता है। addWidget(widget, row, column) निर्दिष्ट पंक्ति और स्तंभ (शून्य-अनुक्रमित) में एक विजेट जोड़ता है।

2. कई सेल को फैलाना

किसी विजेट को कई पंक्तियों या स्तंभों में फैलाने के लिए, addWidget(widget, row, column, rowspan, colspan) का उपयोग करें। rowspan और colspan विजेट द्वारा कब्जा किए गए पंक्तियों और स्तंभों की संख्या को परिभाषित करते हैं।


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout, QLabel

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 ग्रिड लेआउट स्पैन उदाहरण")

layout = QGridLayout()

label = QLabel("यह लेबल दो स्तंभों में फैला हुआ है")
button1 = QPushButton("बटन 1")
button2 = QPushButton("बटन 2")

layout.addWidget(label, 0, 0, 1, 2)  # दो स्तंभों में फैला हुआ है
layout.addWidget(button1, 1, 0)
layout.addWidget(button2, 1, 1)

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

यहाँ, लेबल दो स्तंभों में फैला हुआ है।

3. विजेट स्ट्रेचिंग को नियंत्रित करना

डिफ़ॉल्ट रूप से, विजेट्स उनके न्यूनतम आकार के अनुसार आकार दिए जाते हैं। विजेट्स को उपलब्ध स्थान को भरने के लिए कैसे विस्तारित किया जाए, इसे नियंत्रित करने के लिए, setColumnStretch(column, stretch) और setRowStretch(row, stretch) का उपयोग करें। एक उच्च स्ट्रेच कारक का अर्थ है कि विजेट उपलब्ध स्थान के आनुपातिक रूप से बड़े हिस्से पर कब्जा कर लेगा।


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 ग्रिड लेआउट स्ट्रेच उदाहरण")

layout = QGridLayout()

button1 = QPushButton("बटन 1")
button2 = QPushButton("बटन 2")

layout.addWidget(button1, 0, 0)
layout.addWidget(button2, 0, 1)

layout.setColumnStretch(1, 2)  # स्तंभ 1 स्तंभ 0 की तुलना में दोगुना फैलता है

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

button2 अब button1 के क्षैतिज स्थान का दोगुना हिस्सा लेगा।

4. उन्नत तकनीकें और विचार

अधिक जटिल लेआउट के लिए, विचार करें:

  • addLayout(): नेस्टेड संरचनाओं के लिए QGridLayout के भीतर अन्य लेआउट एम्बेड करें।
  • संरेखण: उनके सेल के भीतर विजेट्स के संरेखण को नियंत्रित करने के लिए setAlignment() का उपयोग करें।
  • अंतराल: setVerticalSpacing() और setHorizontalSpacing() का उपयोग करके पंक्तियों और स्तंभों के बीच अंतराल को समायोजित करें।
  • मार्जिन: setContentsMargins() का उपयोग करके पूरे ग्रिड के चारों ओर मार्जिन को नियंत्रित करें।

इन तकनीकों में महारत हासिल करने से आप परिष्कृत और अत्यधिक अनुकूलनीय PyQt5 इंटरफेस बना पाएंगे।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *