-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
51 lines (40 loc) · 1.53 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import sys
import os
import urllib.request
from PySide6.QtWidgets import QApplication, QFileDialog, QMessageBox, QWidget
from PySide6.QtUiTools import QUiLoader
from PySide6.QtCore import QDir
class mainwindow(QWidget):
def __init__(self):
super(mainwindow, self).__init__()
loader = QUiLoader()
self.ui = loader.load("form.ui")
self.ui.show()
self.ui.dnbtn.clicked.connect(self.download)
self.ui.brbtn.clicked.connect(self.browse)
def browse(self):
save = QFileDialog.getSaveFileName(
self, caption="Save File As", filter="All Files (*.*)", dir=".")
self.ui.bredit.setText(save[0])
def download(self):
url = self.ui.dnedit.text()
save_url = self.ui.bredit.text()
try:
urllib.request.urlretrieve(url, save_url, self.report)
except Exception:
QMessageBox.warning(self, "Warning", "The download failed!")
return
QMessageBox.information(self, "Information",
"The download is complete!")
self.ui.prb.setValue(0)
self.ui.dnedit.setText('')
self.ui.bredit.setText('')
def report(self, blocknum, blocksize, totalsize):
readsofar = blocknum * blocksize
if totalsize > 0:
percent = readsofar * 100 / totalsize
self.ui.prb.setValue(int(percent))
if __name__ == "__main__":
app = QApplication([])
window = mainwindow()
sys.exit(app.exec_())