每当我创建大的 zip 文件时,PyQt5 GUI 就会冻结

这是我创建 zip 文件的代码部分。只需将“path”变量更改为计算机中的真实路径,它就应该可以正常工作(“path”是新 zip 文件的名称和路径)。我可以毫无问题地创建小目录的 zip 文件,但如果我尝试使用更大的文件夹来创建它,它就会冻结直到完成,或者崩溃并关闭。虽然 zip 文件已创建,所以问题只是 GUI 冻结和崩溃。


from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit, QFileDialog

import zipfile

import os


class Ui_MainWindow(object):

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")

        MainWindow.resize(800, 600)

        self.centralwidget = QtWidgets.QWidget(MainWindow)

        self.centralwidget.setObjectName("centralwidget")

        self.pushButton = QtWidgets.QPushButton(self.centralwidget)

        self.pushButton.setGeometry(QtCore.QRect(200, 180, 381, 101))

        self.pushButton.setObjectName("pushButton")

        MainWindow.setCentralWidget(self.centralwidget)

        self.menubar = QtWidgets.QMenuBar(MainWindow)

        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))

        self.menubar.setObjectName("menubar")

        MainWindow.setMenuBar(self.menubar)

        self.statusbar = QtWidgets.QStatusBar(MainWindow)

        self.statusbar.setObjectName("statusbar")

        MainWindow.setStatusBar(self.statusbar)


        self.retranslateUi(MainWindow)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)


        self.pushButton.clicked.connect(self.createZipFile)


    def retranslateUi(self, MainWindow):

        _translate = QtCore.QCoreApplication.translate

        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

        self.pushButton.setText(_translate("MainWindow", "TEST"))


POPMUISE
浏览 119回答 0
0回答

PIPIONE

感谢 GPhilo 的评论,我解决了这个问题。答案基本上是使用线程。我在评论部分链接了我用来学习如何使用它们的页面。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python