From 4256bc18e6b27cf6866797797cadf04e28658c74 Mon Sep 17 00:00:00 2001 From: LjingZhijoin Group <107012527+ljzloser@users.noreply.github.com> Date: Wed, 6 Nov 2024 20:11:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86=E5=9B=A0?= =?UTF-8?q?=E4=B8=BA=E5=8A=A8=E7=94=BB=E5=AF=BC=E8=87=B4=E7=9A=84=E8=A7=86?= =?UTF-8?q?=E8=A7=89bug=EF=BC=8C=E4=BF=AE=E6=94=B9=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E4=B8=BAtag=5Fname=E5=92=8Cname=E4=BA=8C?= =?UTF-8?q?=E9=80=89=E4=B8=80=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/CheckUpdateGui.py | 9 +++++++-- src/githubApi.py | 23 ++++++++++++----------- src/superGUI.py | 2 +- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/CheckUpdateGui.py b/src/CheckUpdateGui.py index 5d31049..84ead01 100644 --- a/src/CheckUpdateGui.py +++ b/src/CheckUpdateGui.py @@ -111,6 +111,7 @@ def initUi(self): font = QFont("Microsoft YaHei UI", 13) font.setBold(True) self.bodyEdit.setFont(font) + self.bodyEdit.setFixedHeight(150) self.bodyEdit.setVerticalScrollBarPolicy( Qt.ScrollBarPolicy.ScrollBarAlwaysOff) dataLayout.addWidget(self.bodyEdit) @@ -164,11 +165,15 @@ def showButtonClicked(self, checked: bool): animation2.start(QPropertyAnimation.DeletionPolicy.DeleteWhenStopped) animation.start(QPropertyAnimation.DeletionPolicy.DeleteWhenStopped) animation.finished.connect(lambda: self.formWidget.setVisible(checked)) + animation.finished.connect(lambda: self.resWidth()) def downLoadButtonClicked(self): self.downLoadFile.emit(self.release) - + def resWidth(self): + area:QScrollArea = self.parentWidget().parentWidget().parentWidget() + width = area.verticalScrollBar().width() if area.verticalScrollBar().isVisible() else 0 + self.resize(area.width() - width, self.height()) class CheckUpdateGui(QDialog): def __init__(self, github: GitHub, parent=None): super().__init__(parent.mainWindow) @@ -245,7 +250,7 @@ def changeSource(self, source: str): self.github.sourceManager.currentSource = source self.checkUpdateButton.click() @pyqtSlot(list) - def checkUpdate(self, releases: list): + def checkUpdate(self, releases: list[Release]): widget = self.releaseArea.widget() if widget is not None: widget.deleteLater() diff --git a/src/githubApi.py b/src/githubApi.py index de06e56..271f24c 100644 --- a/src/githubApi.py +++ b/src/githubApi.py @@ -122,11 +122,11 @@ def __pingSignal(self,url: str, responseTime: float): self.quickSource.emit(quickKey,quickTime) class Release: - def __init__(self,dict): - self.tag_name = dict['tag_name'] - self.body = dict['body'] - self.html_url = dict['html_url'] - m_assert = dict['assets'][0] + def __init__(self,data:dict,versionReStr:str) -> None: + self.tag_name = data['tag_name'] if re.search(versionReStr,data['tag_name']) else data['name'] + self.body = data['body'] + self.html_url = data['html_url'] + m_assert = data['assets'][0] self.assets_name = m_assert['name'] self.assets_content_type = m_assert['content_type'] self.assets_size = m_assert['size'] @@ -245,7 +245,7 @@ def isNeedUpdate(self,isAsync:bool = True) -> bool | str | None: return reply.objectName() def __isNeedUpdate(self,data)->bool: - release = Release(json.loads(data)) + release = Release(json.loads(data),self.versionReStr) return self.compareVersion(release.tag_name) == '>' def __isNeedUpdateAsync(self,reply:QNetworkReply): @@ -282,7 +282,7 @@ def latestRelease(self,isAsync:bool = True) -> Release | str | None: data = reply.readAll().data().decode('utf-8') self.__replyDict.pop(reply.objectName()) reply.deleteLater() - return Release(json.loads(data)) + return Release(json.loads(data),self.versionReStr) else: nam.finished.connect(self.__lastReleaseAsync) return reply.objectName() @@ -293,7 +293,7 @@ def __lastReleaseAsync(self,reply:QNetworkReply): elif reply.error() != QNetworkReply.NoError: self.error(reply.errorString()) else: - self.latestReleaseAsyncSignal.emit(Release(json.loads(reply.readAll().data().decode('utf-8')))) + self.latestReleaseAsyncSignal.emit(Release(json.loads(reply.readAll().data().decode('utf-8')),self.versionReStr)) self.__replyDict.pop(reply.objectName()) reply.deleteLater() @@ -327,7 +327,7 @@ def releases(self,isAsync:bool = True) -> list | str | None: def __releases(self,data) -> list | None: - return [Release(x) for x in json.loads(data)] + return [Release(x,self.versionReStr) for x in json.loads(data)] def __releasesAsync(self,reply:QNetworkReply): if reply.error() == QNetworkReply.NetworkError.OperationCanceledError: @@ -389,8 +389,9 @@ def __saveFile(self,release:Release): with open(path,'wb') as f: f.write(reply.readAll()) self.downloadReleaseAsyncFinishSignal.emit(path) - self.__replyDict.pop(reply.objectName()) - reply.deleteLater() + if reply.objectName() in self.__replyDict: + self.__replyDict.pop(reply.objectName()) + reply.deleteLater() def compareVersion(self,v2:str) -> str: """和当前版本比较 diff --git a/src/superGUI.py b/src/superGUI.py index 3f2fc10..31c921c 100644 --- a/src/superGUI.py +++ b/src/superGUI.py @@ -16,7 +16,7 @@ # version = "元3.1.11".encode( "UTF-8" ) -version = "测试3.1.13".encode( "UTF-8" ) +version = "测试3.1.11".encode( "UTF-8" ) class Ui_MainWindow(Ui_MainWindow):