PyQt5 Tutorials

PyQt5 के पुश बटन: एक व्यापक गाइड

Spread the love

यह ट्यूटोरियल PyQt5 के QPushButton विजेट और अन्य मुख्य तत्वों के साथ इसके अंतःक्रिया का व्यापक परिचय प्रदान करता है। हम एक बुनियादी बटन कार्यान्वयन पर निर्माण करेंगे, इंटरैक्टिव और दृष्टिगत रूप से आकर्षक अनुप्रयोग बनाने के लिए स्टाइलिंग तकनीकों और ईवेंट हैंडलिंग की खोज करेंगे।

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

  1. पुश बटन बनाना
  2. पुश बटन को स्टाइल करना
  3. बटन क्लिक्स को हैंडल करना: सिग्नल और स्लॉट्स
  4. QLabel के साथ एकीकरण: जानकारी प्रदर्शित करना
  5. QStyleSheet के साथ उन्नत स्टाइलिंग

1. पुश बटन बनाना

QPushButton PyQt5 GUI विकास में एक मौलिक निर्माण खंड है। आइए एक साधारण बटन बनाएँ:


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

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("मेरा PyQt5 ऐप")

button = QPushButton("क्लिक करें!")
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

यह कोड “क्लिक करें!” लेबल वाला एक बटन युक्त एक विंडो बनाता है। बटन वर्तमान में निष्क्रिय है; हम अगले भाग में कार्यक्षमता जोड़ेंगे।

2. पुश बटन को स्टाइल करना

PyQt5 आपके बटनों की उपस्थिति को अनुकूलित करने के विभिन्न तरीके प्रदान करता है। हम पाठ, फ़ॉन्ट बदल सकते हैं, और यहां तक कि आइकन भी जोड़ सकते हैं:


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt5.QtGui import QFont, QIcon

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("स्टाइल किया गया बटन")

button = QPushButton("क्लिक करें!")
button.setFont(QFont('Arial', 12)) #फ़ॉन्ट सेट करें
button.setIcon(QIcon('path/to/your/icon.png')) #एक आइकन जोड़ें (अपने आइकन पथ से बदलें)
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

कृपया 'path/to/your/icon.png' को अपनी आइकन फ़ाइल के वास्तविक पथ से बदलें।

3. बटन क्लिक्स को हैंडल करना: सिग्नल और स्लॉट्स

बटन को इंटरैक्टिव बनाने के लिए, हम सिग्नल और स्लॉट्स का उपयोग करते हैं। जब कोई ईवेंट होता है (जैसे बटन क्लिक), तो एक सिग्नल उत्सर्जित होता है, और एक स्लॉट एक फ़ंक्शन होता है जो सिग्नल का जवाब देता है।


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

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("इंटरैक्टिव बटन")

button = QPushButton("क्लिक करें!")
label = QLabel("बटन अभी तक क्लिक नहीं किया गया है।")
layout = QVBoxLayout()
layout.addWidget(button)
layout.addWidget(label)
window.setLayout(layout)

def on_button_click():
    label.setText("बटन क्लिक किया गया!")

button.clicked.connect(on_button_click) #सिग्नल को स्लॉट से कनेक्ट करें

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

यह उदाहरण बटन के clicked सिग्नल को on_button_click फ़ंक्शन से जोड़ता है, जो यह इंगित करने के लिए एक लेबल को अपडेट करता है कि बटन दबाया गया है।

4. QLabel के साथ एकीकरण: जानकारी प्रदर्शित करना

QLabel विजेट्स बटनों के साथ पाठ या चित्र प्रदर्शित करने के लिए आदर्श हैं। यहाँ उन्हें कैसे संयोजित किया जाए:


# (धारा 3 का कोड यहाँ जानकारी प्रदर्शित करने के लिए एक QLabel को शामिल करने के लिए बढ़ाया जा सकता है)

(धारा 3 का कोड जानकारी प्रदर्शित करने के लिए एक QLabel को शामिल करने के लिए आसानी से बढ़ाया जा सकता है। संक्षिप्तता के लिए, यह यहाँ स्पष्ट रूप से नहीं दिखाया गया है, लेकिन अवधारणा पिछले उदाहरण में प्रदर्शित की गई है।)

5. QStyleSheet के साथ उन्नत स्टाइलिंग

अधिक जटिल स्टाइलिंग के लिए, QStyleSheet का उपयोग करें। यह आपको अपने विजेट्स पर CSS-जैसे स्टाइल लागू करने की अनुमति देता है।


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QStyleSheet उदाहरण")

button = QPushButton("क्लिक करें!")
button.setStyleSheet("QPushButton { background-color: lightblue; color: darkblue; border-radius: 10px; padding: 10px; }")
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

यह हल्के नीले रंग की पृष्ठभूमि, गहरे नीले रंग के पाठ, गोल कोनों और पैडिंग के साथ बटन को स्टाइल करने के लिए QStyleSheet का उपयोग करता है।

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

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