diff --git a/main/DownLoadWin.py b/main/DownLoadWin.py index beae555..ba1e6c3 100644 --- a/main/DownLoadWin.py +++ b/main/DownLoadWin.py @@ -13,6 +13,7 @@ def setupUi(self, Form): Form.resize(360, 126) Form.setMinimumSize(QtCore.QSize(360, 126)) Form.setMaximumSize(QtCore.QSize(360, 126)) + Form.setWindowIcon(QtGui.QIcon(QtGui.QPixmap("./src/images/ico.png"))) self.pushButton = QtWidgets.QPushButton(Form) self.pushButton.setGeometry(QtCore.QRect(140, 100, 75, 21)) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) diff --git a/main/Main.py b/main/Main.py index 5483d39..eacd1ae 100644 --- a/main/Main.py +++ b/main/Main.py @@ -1,10 +1,14 @@ import MainWin from PyQt5.QtWidgets import QApplication +from PyQt5.QtGui import QPalette, QBrush, QPixmap, QIcon import sys -import DownloadWin if __name__ == '__main__': app = QApplication(sys.argv) mainWin = MainWin.MainWin() + pelette = QPalette() + pelette.setBrush(QPalette.Background, QBrush(QPixmap("./src/images/bkg.jpg"))) + mainWin.setPalette(pelette) + mainWin.setWindowIcon(QIcon(QPixmap("./src/images/ico.png"))) mainWin.show() sys.exit(app.exec_()) \ No newline at end of file diff --git a/main/Main.spec b/main/Main.spec deleted file mode 100644 index 4a3d15e..0000000 --- a/main/Main.spec +++ /dev/null @@ -1,33 +0,0 @@ -# -*- mode: python ; coding: utf-8 -*- - -block_cipher = None - - -a = Analysis(['Main.py'], - pathex=['E:\\Projects\\pythonProject\\SoftwareDownloader\\main', 'E:\\Projects\\pythonProject\\SoftwareDownloader\\main'], - binaries=[], - datas=[], - hiddenimports=[], - hookspath=[], - runtime_hooks=[], - excludes=[], - win_no_prefer_redirects=False, - win_private_assemblies=False, - cipher=block_cipher, - noarchive=False) -pyz = PYZ(a.pure, a.zipped_data, - cipher=block_cipher) -exe = EXE(pyz, - a.scripts, - a.binaries, - a.zipfiles, - a.datas, - [], - name='Main', - debug=False, - bootloader_ignore_signals=False, - strip=False, - upx=True, - upx_exclude=[], - runtime_tmpdir=None, - console=False ) diff --git a/main/MainWin.py b/main/MainWin.py index df304c4..b095ad3 100644 --- a/main/MainWin.py +++ b/main/MainWin.py @@ -22,9 +22,11 @@ def setupUi(self, MainWindow): MainWindow.setSizePolicy(sizePolicy) MainWindow.setMinimumSize(QtCore.QSize(1196, 640)) MainWindow.setMaximumSize(QtCore.QSize(1196, 640)) + MainWindow.setAutoFillBackground(True) self.tipLabel = QtWidgets.QLabel(MainWindow) self.tipLabel.setGeometry(QtCore.QRect(1000, 590, 141, 31)) self.tipLabel.setText("") + self.tipLabel.setStyleSheet("font-family:'黑体'; font-size: 14px") self.tipLabel.setObjectName("tipLabel") self.tableWidget = QtWidgets.QTableWidget(MainWindow) self.tableWidget.setGeometry(QtCore.QRect(20, 90, 1156, 490)) @@ -60,6 +62,8 @@ def setupUi(self, MainWindow): sizePolicy.setHeightForWidth(self.lineEdit.sizePolicy().hasHeightForWidth()) self.lineEdit.setSizePolicy(sizePolicy) self.lineEdit.setObjectName("lineEdit") + self.lineEdit.setClearButtonEnabled(True) + self.lineEdit.setStyleSheet("border: 3px solid black;font-size: 20px") self.horizontalLayout.addWidget(self.lineEdit) self.searchButton = QtWidgets.QPushButton(self.widget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) @@ -78,11 +82,13 @@ def setupUi(self, MainWindow): self.horizontalLayout.addWidget(self.line) self.label = QtWidgets.QLabel(self.widget) self.label.setObjectName("label") + self.label.setStyleSheet("color: white; font-size:16px") self.horizontalLayout.addWidget(self.label) self.comboBox = QtWidgets.QComboBox(self.widget) self.comboBox.setObjectName("comboBox") self.comboBox.addItem("") self.comboBox.addItem("") + self.comboBox.setStyleSheet("color: blue") self.horizontalLayout.addWidget(self.comboBox) self.line_2 = QtWidgets.QFrame(self.widget) self.line_2.setFrameShape(QtWidgets.QFrame.VLine) @@ -91,6 +97,7 @@ def setupUi(self, MainWindow): self.horizontalLayout.addWidget(self.line_2) self.horizontalLayout.setStretch(0, 2) + self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) @@ -116,6 +123,7 @@ def __init__(self): # 绑定搜索按钮信号槽 self.searchButton.clicked.connect(self.searchAppInfo) + self.lineEdit.returnPressed.connect(self.searchAppInfo) # 查询软件相关信息功能返回字典 def searchAppInfo(self): # 获取选择控件文字 @@ -144,40 +152,47 @@ def flushTableWidget(self, lst): self.downloadButton = QtWidgets.QPushButton() # 设置下载按钮图片 self.downloadButton.setIcon(QtGui.QIcon("./src/images/download.png")) + self.downloadButton.setStyleSheet("background-color: #5A9BB3") # 创建窗口对象 self.headWidget = QtWidgets.QWidget() # 创建图像标签对象 self.imgLabel = QtWidgets.QLabel() # 将解析的logo片放入图像标签 - self.imgLabel.setPixmap(v[6]) - # 创建文字标签 - self.textLabel = QtWidgets.QLabel() - # 设置应用名称到文字标签 - self.textLabel.setText(k[0]) - # 创建水平布局,讲窗口对象放进此布局 - self.hLayout = QtWidgets.QHBoxLayout(self.headWidget) - # 将图像标签放入窗口对象所在布局并设置居中 - self.hLayout.addWidget(self.imgLabel, 0, QtCore.Qt.AlignCenter) - # 将文字标签放入窗口对象所在布局 - self.hLayout.addWidget(self.textLabel) - # 将窗口对象添加到每行第一个单元格 - self.tableWidget.setCellWidget(MainWin.row, 0, self.headWidget) - # 设置单元格高度 - self.tableWidget.setRowHeight(MainWin.row, 68) - # 放置项目到对应单元格 - self.tableWidget.setItem(MainWin.row, 0, v[0]) - self.tableWidget.setItem(MainWin.row, 1, v[1]) - self.tableWidget.setItem(MainWin.row, 2, v[2]) - self.tableWidget.setItem(MainWin.row, 3, v[3]) - self.tableWidget.setItem(MainWin.row, 4, v[4]) - self.tableWidget.setItem(MainWin.row, 5, v[5]) - self.tableWidget.setCellWidget(MainWin.row, 6, self.downloadButton) - # 给下载按钮建立信号槽 - self.downloadButton.clicked.connect(self.download) + try: + self.imgLabel.setScaledContents(True) + self.imgLabel.setPixmap(v[6]) + # 创建文字标签 + self.textLabel = QtWidgets.QLabel() + # 设置应用名称到文字标签 + self.textLabel.setText(k[0]) + # 创建水平布局,讲窗口对象放进此布局 + self.hLayout = QtWidgets.QHBoxLayout(self.headWidget) + # 将图像标签放入窗口对象所在布局并设置居中 + self.hLayout.addWidget(self.imgLabel, 0, QtCore.Qt.AlignCenter) + # 将文字标签放入窗口对象所在布局 + self.hLayout.addWidget(self.textLabel) + # 将窗口对象添加到每行第一个单元格 + self.tableWidget.setCellWidget(MainWin.row, 0, self.headWidget) + # 设置单元格高度 + self.tableWidget.setRowHeight(MainWin.row, 68) + # 放置项目到对应单元格 + self.tableWidget.setItem(MainWin.row, 0, v[0]) + self.tableWidget.setItem(MainWin.row, 1, v[1]) + self.tableWidget.setItem(MainWin.row, 2, v[2]) + self.tableWidget.setItem(MainWin.row, 3, v[3]) + self.tableWidget.setItem(MainWin.row, 4, v[4]) + self.tableWidget.setItem(MainWin.row, 5, v[5]) + self.tableWidget.setCellWidget(MainWin.row, 6, self.downloadButton) + # 给下载按钮建立信号槽 + self.downloadButton.clicked.connect(self.download) + except: + self.tableWidget.hideRow(MainWin.row) + def flushTipLabel(self, txt): self.tableWidget.setRowCount(int(txt)) + self.tipLabel.setStyleSheet("color:white; font-size: 14px") self.tipLabel.setText("共找到{}款相关软件".format(txt)) MainWin.txt = int(txt) @@ -186,9 +201,17 @@ def flushTipLabel(self, txt): def download(self): MainWin.data = {} rowLine = self.tableWidget.currentRow() - fileName = QtWidgets.QFileDialog.getSaveFileName(self, "", MainWin.infoBox[0][rowLine][8]) - MainWin.data['fileDir'] = fileName - MainWin.data['url'] = MainWin.infoBox[0][rowLine][7] + if MainWin.selectBox == '腾讯': + fileName = QtWidgets.QFileDialog.getSaveFileName(self, "", MainWin.infoBox[0][rowLine][8]) + MainWin.data['fileDir'] = fileName + MainWin.data['url'] = MainWin.infoBox[0][rowLine][7] + else: + import re + fileName = MainWin.infoBox[0][rowLine]['soft_download'] + fileName = re.findall(re.compile(r'/(.*?).exe'), fileName) + fileName = QtWidgets.QFileDialog.getSaveFileName(self, "", fileName[0] + '.exe') + MainWin.data['url'] = MainWin.infoBox[0][rowLine]['soft_download'] + MainWin.data['fileDir'] = fileName if fileName[0] != '': self.downloadWin = DownloadWin.Form() self.downloadWin.setWindowModality(QtCore.Qt.ApplicationModal) @@ -321,10 +344,9 @@ def run(self): else: logUrl = value['logo'] imgData = requests.get(logUrl).content - print(imgData) photo = QtGui.QPixmap() photo.loadFromData(imgData) - photo.scaled(QtCore.QSize(32,32)) + photo.scaled(32, 32, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation) info['img'] = photo dUrl = value['soft_download'] info['url'] = dUrl diff --git a/main/test.py b/main/test.py deleted file mode 100644 index b9eefe6..0000000 --- a/main/test.py +++ /dev/null @@ -1,20 +0,0 @@ -import requests - -# 360软件库 -class QiHu: - def __init__(self, name): - self.url = "http://bapi.safe.360.cn/soft/search?keyword={}&page=1".format(name) - - # 获取信息 - def getInfo(self): - res = requests.get(self.url) - lst = res.json()['data']['list'] - total = res.json()['data']['total'] - data = {} - for i in range(len(lst)): - data[i] = lst[i] - print(data) - - -if __name__ == '__main__': - QiHu('qq').getInfo() \ No newline at end of file diff --git a/untitled.py b/untitled.py deleted file mode 100644 index 297404e..0000000 --- a/untitled.py +++ /dev/null @@ -1,106 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'untitled.ui' -# -# Created by: PyQt5 UI code generator 5.15.1 -# -# WARNING: Any manual changes made to this file will be lost when pyuic5 is -# run again. Do not edit this file unless you know what you are doing. - - -from PyQt5 import QtCore, QtGui, QtWidgets - - -class Ui_MainWindow(object): - def setupUi(self, MainWindow): - MainWindow.setObjectName("MainWindow") - MainWindow.resize(1176, 640) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) - MainWindow.setSizePolicy(sizePolicy) - MainWindow.setMinimumSize(QtCore.QSize(1176, 640)) - MainWindow.setMaximumSize(QtCore.QSize(1176, 640)) - self.tipLabel = QtWidgets.QLabel(MainWindow) - self.tipLabel.setGeometry(QtCore.QRect(1000, 590, 141, 31)) - self.tipLabel.setText("") - self.tipLabel.setObjectName("tipLabel") - self.tableWidget = QtWidgets.QTableWidget(MainWindow) - self.tableWidget.setGeometry(QtCore.QRect(20, 90, 1136, 490)) - self.tableWidget.setObjectName("tableWidget") - self.tableWidget.setColumnCount(7) - self.tableWidget.setColumnWidth(0,180) - self.tableWidget.setColumnWidth(1,120) - self.tableWidget.setColumnWidth(2,80) - self.tableWidget.setColumnWidth(3,100) - self.tableWidget.setColumnWidth(4,500) - self.tableWidget.setColumnWidth(5,50) - self.tableWidget.setColumnWidth(6,100) - self.tableWidget.setEditTriggers(QtWidgets.QTableView.NoEditTriggers) - self.tableWidget.verticalHeader().setVisible(False) - self.tableWidget.setHorizontalHeaderLabels(['名称', '版本', '大小', '发布日期', '描述', '评分', '']) - self.widget = QtWidgets.QWidget(MainWindow) - self.widget.setGeometry(QtCore.QRect(500, 40, 651, 41)) - self.widget.setObjectName("widget") - self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget) - self.horizontalLayout.setContentsMargins(0, 0, 0, 0) - self.horizontalLayout.setObjectName("horizontalLayout") - self.lineEdit = QtWidgets.QLineEdit(self.widget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.lineEdit.sizePolicy().hasHeightForWidth()) - self.lineEdit.setSizePolicy(sizePolicy) - self.lineEdit.setObjectName("lineEdit") - self.horizontalLayout.addWidget(self.lineEdit) - self.searchButton = QtWidgets.QPushButton(self.widget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.searchButton.sizePolicy().hasHeightForWidth()) - self.searchButton.setSizePolicy(sizePolicy) - self.searchButton.setMinimumSize(QtCore.QSize(0, 0)) - self.searchButton.setText("") - self.searchButton.setObjectName("searchButton") - self.horizontalLayout.addWidget(self.searchButton) - self.line = QtWidgets.QFrame(self.widget) - self.line.setFrameShape(QtWidgets.QFrame.VLine) - self.line.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line.setObjectName("line") - self.horizontalLayout.addWidget(self.line) - self.label = QtWidgets.QLabel(self.widget) - self.label.setObjectName("label") - self.horizontalLayout.addWidget(self.label) - self.comboBox = QtWidgets.QComboBox(self.widget) - self.comboBox.setObjectName("comboBox") - self.comboBox.addItem("") - self.comboBox.addItem("") - self.horizontalLayout.addWidget(self.comboBox) - self.line_2 = QtWidgets.QFrame(self.widget) - self.line_2.setFrameShape(QtWidgets.QFrame.VLine) - self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_2.setObjectName("line_2") - self.horizontalLayout.addWidget(self.line_2) - self.horizontalLayout.setStretch(0, 2) - - self.retranslateUi(MainWindow) - QtCore.QMetaObject.connectSlotsByName(MainWindow) - - def retranslateUi(self, MainWindow): - _translate = QtCore.QCoreApplication.translate - MainWindow.setWindowTitle(_translate("MainWindow", "Pure Software Downloader")) - self.lineEdit.setPlaceholderText(_translate("MainWindow", "在这里输入你要找的软件")) - self.label.setText(_translate("MainWindow", "软件库")) - self.comboBox.setItemText(0, _translate("MainWindow", "腾讯")) - self.comboBox.setItemText(1, _translate("MainWindow", "360")) - - -if __name__ == '__main__': - import sys - app = QtWidgets.QApplication(sys.argv) - mainWin = QtWidgets.QWidget() - ui = Ui_MainWindow() - ui.setupUi(mainWin) - mainWin.show() - sys.exit(app.exec_()) \ No newline at end of file diff --git a/untitled.ui b/untitled.ui deleted file mode 100644 index d843ba9..0000000 --- a/untitled.ui +++ /dev/null @@ -1,139 +0,0 @@ - - - MainWindow - - - - 0 - 0 - 1176 - 640 - - - - - 0 - 0 - - - - - 1176 - 640 - - - - - 1176 - 640 - - - - Pure Software Downloader - - - - - 1000 - 590 - 141 - 31 - - - - - - - - - - 20 - 90 - 1136 - 490 - - - - - - - 500 - 40 - 651 - 41 - - - - - - - - 0 - 0 - - - - 在这里输入你要找的软件 - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - - - - - - - Qt::Vertical - - - - - - - 软件库 - - - - - - - - 腾讯 - - - - - 360 - - - - - - - - Qt::Vertical - - - - - - - - -