Python 如何在没有错误的情况下关闭文件开启器?

Python 如何在没有错误的情况下关闭文件开启器?,python,pyqt5,Python,Pyqt5,当我单击open按钮时,GUI会给我选择文件的选项。如果关闭文件选择器,则会出现错误。我该如何防止这种情况发生 import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QGridLayout, QWidget, QPushButton class Window(QtWidgets.QMainWindow): def __init__(self): super().__init__()

当我单击open按钮时,GUI会给我选择文件的选项。如果关闭文件选择器,则会出现错误。我该如何防止这种情况发生

import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QGridLayout, QWidget, QPushButton

class Window(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        centralWidget = QWidget()
        self.setCentralWidget(centralWidget)
        self.Open = QPushButton('Open')
        self.Open.clicked.connect(self.open)
        self.show()
        layout = QGridLayout(centralWidget)
        layout.addWidget(self.Open)

    def open(self):
        name = QtWidgets.QFileDialog.getOpenFileName(self, 'Select File')
        file = open(name[0], 'r')
        lines = file.readlines()
        print(lines)

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = Window()
    sys.exit(app.exec_())

检查名称是否有效

import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QGridLayout, QWidget, QPushButton

class Window(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        centralWidget = QWidget()
        self.setCentralWidget(centralWidget)
        self.Open = QPushButton('Open')
        self.Open.clicked.connect(self.open)
        self.show()
        layout = QGridLayout(centralWidget)
        layout.addWidget(self.Open)

    def open(self):
        name, _ = QtWidgets.QFileDialog.getOpenFileName(self, 'Select File')
        if name:                                 # <---
            with open(name) as file:
                lines = file.readlines()
                print(*lines, sep='\n')

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = Window()
    sys.exit(app.exec_())
导入系统 从PyQt5导入QtWidgets 从PyQt5.QtWidgets导入QGridLayout、QWidget、QPushButton 类窗口(QtWidgets.QMainWindow): 定义初始化(自): super()。\uuuu init\uuuuu() centralWidget=QWidget() self.setCentralWidget(centralWidget) self.Open=QPushButton(“打开”) self.Open.clicked.connect(self.Open) self.show() 布局=QGridLayout(centralWidget) layout.addWidget(self.Open) def打开(自): 名称,\=qtwidts.QFileDialog.getOpenFileName(self,“选择文件”) 如果名称:#