如何将从新分配的方法返回的数据分配给Python中的变量?
问题描述:
在Python3中,我需要从使用QFileDialog选择的文件中返回数据。我为QLineEdit对象(self.ui.my_file_lineEdit)分配了一个新方法,以便能够在点击它时打开QFileDialog,但是如何将该数据(文件内容)分配给变量?如何将从新分配的方法返回的数据分配给Python中的变量?
#!/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: invalid result from Main.openfile_Dialog()
我想一个变量分配给该文件的内容。喜欢的东西:
self.my_variable = self.ui.lista_lineEdit.mouseReleaseEvent = self.openfile_Dialog
答
编辑: 我知道你想要的内容,只需要调用你的方法来分配:
self.my_variable = self.ui.lista_lineEdit.mouseReleaseEvent = self.openfile_Dialog()
你忘了调用该方法,您要分配的方式是方法本身的参考。
我现在不习惯调用方法。我只想在单击QLineEdit小部件时调用它。但是,你是对的,我不知道我可以使用'='两次 –