Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,如何将新分配方法返回的数据分配给变量?_Python_Pyqt5 - Fatal编程技术网

在Python中,如何将新分配方法返回的数据分配给变量?

在Python中,如何将新分配方法返回的数据分配给变量?,python,pyqt5,Python,Pyqt5,在Python3中,我需要从使用QFileDialog选择的文件返回数据。我为QLineEdit对象(self.ui.my_file_lineEdit)分配了一个新方法,以便在单击QFileDialog时能够打开它,但如何将该数据(文件内容)分配给变量 #!/usr/bin/env python3 # -*- coding: utf-8 -*- import sys from mainwindow import * class Main(QtWidgets.QMainWindow):

在Python3中,我需要从使用QFileDialog选择的文件返回数据。我为QLineEdit对象(self.ui.my_file_lineEdit)分配了一个新方法,以便在单击QFileDialog时能够打开它,但如何将该数据(文件内容)分配给变量

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys
from mainwindow import *


class Main(QtWidgets.QMainWindow):

    def __init__(self):
        super().__init__()

        self.init_ui()


    def init_ui(self):
        """Initializing GUI from mainwindow module"""
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        #opens a file for selecting my_file.csv
        self.ui.my_file_lineEdit.mouseReleaseEvent = self.openfile_Dialog


    def openfile_Dialog(self, event):
        """
        Opens a dialog for choosing a file. Takes two positionals
        arguments 'self' and 'event' because 'mouseReleaseEvent' sends two
        """
        fname = QtWidgets.QFileDialog.getOpenFileName(self, "Open file", "/home")
        if fname[0]:
            f = open(fname[0], "r")
            with f:
                data = f.read()
                return data
                #self.ui.textBrowser.setText(data)
当我在momonet上选择一个文件时,我得到一个错误:

TypeError:Main.openfile_对话框()的结果无效

我想为该文件的内容分配一个变量。比如:

self.my_variable = self.ui.lista_lineEdit.mouseReleaseEvent = self.openfile_Dialog
编辑: 我知道您想要内容,只需调用您的方法来分配:

self.my_variable = self.ui.lista_lineEdit.mouseReleaseEvent = self.openfile_Dialog()

您忘记了调用方法,您分配的方式是方法本身的引用。

我现在不想调用方法。我只想在单击QLineEdit小部件时调用它。但是,你是对的,我不知道我能用两次