【问题标题】:Application crashes Python when performing a function应用程序在执行函数时崩溃 Python
【发布时间】:2017-05-30 03:00:59
【问题描述】:

当我使用 PyCharm 运行此应用程序时,我很难找出 python 崩溃的原因。 我将 url 插入文件 (https://download.scdn.co/SpotifySetup.exe) 和保存位置 (D:\)。一旦我按下“下载”,Python 就会停止工作。

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


class Downloader(QDialog):
    def __init__(self):
        QDialog.__init__(self)
        layout = QVBoxLayout()
        url = QLineEdit()
        save_location = QLineEdit()
        progress = QProgressBar()
        download = QPushButton("Download")
        progress.setValue(0)
        progress.setAlignment(Qt.AlignHCenter)

        url.setPlaceholderText("URL")
        save_location.setPlaceholderText("Save folder:")

        layout.addWidget(url)
        layout.addWidget(save_location)
        layout.addWidget(progress)
        layout.addWidget(download)
        self.setLayout(layout)
        self.setWindowTitle("Downloader")
        download.clicked.connect(self.download)

    def download(self):
        url = self.url.text()
        save_location = self.save_location.text()
        urllib.request.urlretrieve(url, save_location, self.report)

        try:
            urllib.request.urlretrieve(url, save_location, self.report)
        except Exception:
            QMessageBox.warning(self, "Warning", "The download failed")
            return

        QMessageBox.information(self, "Information", "The Download is complete")
        self.progress.setValue(0)
        self.url.setText("")
        self.save_location.setText("")


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


app = QApplication(sys.argv)
dl = Downloader()
dl.show()
app.exec_()
sys.exit(app.exec_())

【问题讨论】:

  • 修复你的代码缩进,很乱

标签: python crash pycharm


【解决方案1】:

通过将self 添加到一些变量名,我让您的代码在 PyCharm 中运行。

  • url -> self.url
  • save_location -> self.save_location
  • progress -> self.progress

以下是更新代码的要点:

【讨论】:

  • 但这与 pycharm 和崩溃有什么关系?我正在调查我这边的崩溃,还有 GUI。
猜你喜欢
  • 1970-01-01
  • 2018-02-25
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多