开发者社区> 问答> 正文

关闭QFileDialog时报错,打开文件的方式不对吗??报错

开发环境:

Python3.5+Qt Designer+PyQt5+PyChram

先用Qt Design 绘制一个Dialog窗口,添加了一个pushButton,保存ui,用pyuic5将ui转成ui_dialog.py,其代码如下:

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(160, 140, 75, 23))
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.pushButton.setText(_translate("Dialog", "OK"))

把ui_dialog.py一起拷贝到qdialog project下,写main函数,代码如下:

from PyQt5.QtWidgets import QFileDialog, QDialog, QApplication, QMessageBox
from ui_dialog import *
import sys

class Dialog(QDialog, Ui_Dialog):
    def __init__(self, parent=None):
        super(Dialog, self).__init__(parent)
        self.setupUi(self)
        self.pushButton.clicked.connect(self.ok_btn)

    def ok_btn(self):
        fileName = QFileDialog.getOpenFileName(self)
        file = open(fileName)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainWindow = Dialog()
    mainWindow.show()
    sys.exit(app.exec_())

运行后弹出界面如下:

点击OK后弹出QFileDialog对话框,此时如果关闭右上角的小叉后就会报错。

 

感觉好像是main里面的

file = open(fileName)

出了问题。是打开的方式不对吗?

展开
收起
爱吃鱼的程序员 2020-06-08 16:33:39 610 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    博主,你找到原因了吗?

    2020-06-08 16:33:57
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载