В 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
Я не хочу называть метод прямо сейчас. Я хочу называть его только тогда, когда я нажимаю виджет QLineEdit. Но, вы правы, я не знал, что могу использовать '=' два раза –