سایت رسمی یادداشت های غیررسمی



برنامه دانلود کننده فایل رو میخوام بنویسیم. 

1. اولین قدم طراخی GUI هست. که به صورت زیر انجام میدیم:

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys
class Window(QWidget):
def __init__(self):
QWidget.__init__(self)

self.setWindowTitle("Amir Downloader")
layout = QVBoxLayout()
self.setLayout(layout)
url = QLineEdit()
url.setPlaceholderText("Enter URL")
layout.addWidget(url)
path = QLineEdit()
path.setPlaceholderText("Enter save path")
layout .addWidget(path)
progres = QProgressBar()
layout.addWidget(progres)
progres.setValue(0)
progres.setAlignment(Qt.AlignHCenter)
button = QPushButton("Download")
layout.addWidget(button)




app = QApplication(sys.argv)
screen = Window()
screen.show()
sys.exit(app.exec_())
برای دانلود فایل از کتابخانه urllib استفاده میکنیم. و دوتا تابع هم تعریف میکنیم یکی برای دانلود کردن  که با کلیک کردن روی دکمه فراخوانی میشه و دیگری برای اپدیت کردن مقدار Proggres bar موجود در برنامه استفاده می شود.

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import urllib.request
import sys


class Window(QWidget):
def __init__(self):
QWidget.__init__(self)

self.setWindowTitle("Amir Downloader")
layout = QVBoxLayout()
self.setLayout(layout)
self.url = QLineEdit()
self.url.setPlaceholderText("Enter URL")
layout.addWidget(self.url)
self.path = QLineEdit()
self.path.setPlaceholderText("Enter save path")
layout.addWidget(self.path)
self.progres = QProgressBar()
layout.addWidget(self.progres)
self.progres.setValue(0)
self.progres.setAlignment(Qt.AlignHCenter)
button = QPushButton("Download")
layout.addWidget(button)
self.label = QLabel('url demo')
self.label2 = QLabel('path demo')
layout.addWidget(self.label)
layout.addWidget(self.label2)

button.clicked.connect(self.download)

def download(self):
url = self.url.text()
path = self.path.text()
self.label.setText(url)
self.label2.setText(path)
urllib.request.urlretrieve(url, path , self.report)

def report(self, blocknum, blocksize, totalsize):
readsofar = blocknum * blocksize
if totalsize > 0:
percent = readsofar * 100 / totalsize
self.progres.setValue(int(percent))


app = QApplication(sys.argv)
screen = Window()
screen.show()
sys.exit(app.exec_())
نکته بسیار مهمی که در استفاده از urlretrive هست اینکه باید مسیر و اسم فایل با پسوند رو هم وارد کنی که درست کار بده.

آخرین مطالب

آخرین ارسال ها

آخرین جستجو ها


شهرستان بهارستان nessgasasmoy وزن دانلود رایگان نمونه سوالات ذهن باز حسابداری تیدا کلیپ بانک لینک های دانلود فیلم ، دانلود سریال و دانلود آهنگ میباشد. Judith's blog sofreaghd bargrizanetu