Create Simple Desktop Application with Python Hindi : आज पाइथन जितनी पोपुलर है उससे आप किसी भी तरह की एप्लीकेशन को design कर सकते है. अगर आप Website डेवलपमेंट करना चाहते है तो भी आप पाइथन का इस्तेमाल कर सकते है. आज इस आर्टिकल में हम आपको Python की मदद से एक Simple Desktop Application बनाने के बारे में बताएँगे.

Create Simple Desktop Application with Python Hindi
सबसे पहले आपको कंप्यूटर में पाइथन का लेटेस्ट वर्शन इनस्टॉल होना जरुरी है. मैं यहाँ यह सोच कर चल रहा हूँ की आपको पाइथन के सभी बेसिक चीजों का पता है और आप नीचे बताये गए कोड को आसानी से समझ सकते है.




अगर आपने पाइथन के बेसिक नहीं पढ़े है तो ये टुटोरिअल आपको समझ में नहीं आएगा.
यहाँ पर हम एक framework का इस्तेमाल करेंगे जो की है PyQt. इसका इस्तेमाल desktop एप्लीकेशन बनाने के लिए किया जाता है जिससे आप एक ही Codebase की मदद से सभी तरह के OS पर चलने वाले सॉफ्टवेयर बना सकते है. इसको सीखना बहुत ही आसान भी है.
Create Your Project Folder और Files
सबसे पहले आपको अपने कंप्यूटर पर project बना लेना है और इसमें एक python फाइल बना लेनी है. इसका नाम आप अपने हिसाब से रख सकते है.
Import
अब आपको कई फाइल को इम्पोर्ट करना है जैसा ही आपको नीचे एक code dialog में दिखाई दे रहा है.
from PyQt4.QtCore import * from PyQt4.QtGui import * import sys import urllib.request as request
Create a Simple Class और Method
अब हम जितना भी काम करेंगे सिर्फ एक इसी क्लास में करेंगे. यहाँ पर मैंने इसे Downloader नाम दिया है. आप इसका नाम भी अपनी मर्जी से रख सकते है. और इसमें हम कुछ एक method भी रखेंगे जिससे हम अपने एप्लीकेशन की functionality को extend कर सके.
class Downloader(QDialog):
Construct Method
अगर आपको पाइथन के बेसिक पता है तो Construct वो मेथड होता है जो क्लास को कॉल करने में आटोमेटिक execute हो जाता है. इसे अलग से execute करने की जरूरत नहीं होती.
यहाँ पर हमने एक लेआउट बनाया है जो की PyQt library का एक मेथड है. QVBoxLayout
का मतलब है की हम Vertical Box लेआउट चाहते है.
इसके बाद में हमने QLineEdit
,QProgressBar
,QPushButton
का इस्तेमाल किया है जो की हमारे basic UI डिजाईन करने में मदद करते है.
इसके बाद में हमने Placeholder का इस्तेमाल करते हुए कुछ Hint Text add किये है ताकि user को समझने में आसानी हो.
next सेक्शन में हमने Progress Bar की वैल्यू और एलाइनमेंट को सेट किया है.
इससे आगे हमने सभी UI एलिमेंट को AddWidget
की मदद से Layout में assign कर दिया है. जैसा इनका order होगा ये वैसे ही आपको application में दिखाई देंगे.
इसके बाद में self.setLayout(layout)
का इस्तेमाल करके लेआउट को सेट किया है.
कुछ एक्स्ट्रा feature के लिए हमने self.setWindowTitle("PyDownloader")
और self.setFocus()
का इस्तेमाल किया है. यहाँ पर इस्तेमाल किया गया setWindowTitle
एप्लीकेशन के Bar पर शो होगा. इसको आप अपने हिसाब से भी रख सकते है.
इसके बाद में हमने downloadbtn.clicked.connect(self.download)
और browse.clicked.connect(self.browse_file)
का इस्तेमाल किया है जिससे हम किसी भी फाइल को डाउनलोड कर सकते है. इसमें हमने 2 extra मेथड बनाये है जिससे हम किसी भी URL से कोई फाइल डाउनलोड कर सकते है.
def __init__(self): QDialog.__init__(self) # layout layout = QVBoxLayout() # items UI self.url = QLineEdit() self.save_location = QLineEdit() self.progress = QProgressBar() downloadbtn = QPushButton("Download") browse = QPushButton("Browse") # add placeholder self.url.setPlaceholderText("URL") self.save_location.setPlaceholderText("File Save to") # progress bar self.progress.setValue(0) self.progress.setAlignment(Qt.AlignCenter) # adding to layout layout.addWidget(self.url) layout.addWidget(self.save_location) layout.addWidget(browse) layout.addWidget(self.progress) layout.addWidget(downloadbtn) self.setLayout(layout) self.setWindowTitle("PyDownloader") self.setFocus() downloadbtn.clicked.connect(self.download) browse.clicked.connect(self.browse_file)
Download और Browse File Method
यहाँ पर सबसे पहले download method बनाया गया है जिसकी मदद से हम URL और Location को track कर सकते है. self.url.text()
की मदद से हम उस URL को get करेंगे जिससे हमें फाइल को डाउनलोड करना है.
इसके बाद self.save_location.text()
से हम उस लोकेशन को सेट करेंगे जहाँ पर हमें वो फाइल डाउनलोड करनी है.
इसके बाद हमने try: except:
का इस्तेमाल किया है ताकि कोई भी Error आपने पर हम Error show करवा सके.
try ब्लाक के अंदर हमने request.urlretrieve(url, save_location, self.report)
का इस्तेमाल किया है जो की 3 perameter ले रहा है. इसमें से 2 हमने इसे पहले ही पास कर दिए है. बाकी का एक method हमने अलग से create किया है ताकि उसकी मदद से हम progress bar की value सेट कर सके.
इसके बाद हमने browse_file नाम से एक मेथड बनाया है. जिसमें हमने किसी भी लोकेशन को ब्राउज करके उसको सेव location के तौर पर इस्तेमाल किया जा सके. इसमें हमने QFileDialog.getSaveFileName(self, caption="Save File As", directory=".", filter="All Files (*.*)")
का इस्तेमाल किया है.
यहाँ पर हमने एक और Method का इस्तेमाल किया है जो आपको save_location के saveText() में दिखाई दे रहा होगा. QDir.toNativeSeparators(save_file)
इसकी मदद से हम OS में save होने वाली फाइल के separator को आसानी से चेंज कर सकते है ताकि user को downloading में कोई परेशानी ना हो.
def download(self): url = self.url.text() save_location = self.save_location.text() try: request.urlretrieve(url, save_location, self.report) except Exception: QMessageBox.warning(self, "Warning", "Download Failed") return QMessageBox.information(self, "Success", "Download Completed") self.progress.setValue(0) self.url.setText("") self.save_location.setText("") def report(self, blocknum, blocksize, totalsize): readsofar = blocknum * blocksize if totalsize > 0: percentage = readsofar * 100 / totalsize self.progress.setValue(int(percentage)) def browse_file(self): save_file = QFileDialog.getSaveFileName(self, caption="Save File As", directory=".", filter="All Files (*.*)") self.save_location.setText(QDir.toNativeSeparators(save_file))
Application Execution
जब आप हमारी क्लास की कोडिंग कम्पलीट हो जाए तो इसे run करने के लिए हमें नीचे दिए गए कोड का इस्तेमाल करना होगा ताकि हमारी एप्लीकेशन execute हो सके. अगर आपने Downloader की जगह कोई और नाम दिया है तो आपको वही नाम 2 no. लाइन में लिखना है.
app = QApplication(sys.argv) dl = Downloader() dl.show() app.exec_(
इसके बाद में आप इसको Run करके try करें. अगर आपको कोई भी एरर मिलता है तो Comment box में Comment करके बताएं.
Leave a Reply