Quantcast
Channel: Active questions tagged return-value - Stack Overflow
Viewing all articles
Browse latest Browse all 207

Using variable from another file that needs "import" using a button click

$
0
0

In file 1, I have 2 buttons.

from file2 import Candyclass MyInterface (QMainWindow, Ui_MainWindow):    def __init__(self):        super().__init__()        self.setupUi(self)        self.setWindowTitle("Candy")        self.candy_instance = Candy(self)        self.candy_import_button.clicked.connect(self.candy_instance.import_candy)        self.candy_show_button.clicked.connect(self.candy_instance.show_candy)

In File 2, I have the method to import and show an ODS File

class Candy():    def __init__(self, main_window):        self.main_window = main_window    def import_candy(self):        path = QFileDialog.getOpenFileName(None, 'Open ODS', os.getenv('HOME'), 'ODS(*.ods)')[0]        all_data = pd.read_excel(path, skiprows=5)        if all_data.size == 0:            return        return all_data    def show_candy(self):        self.main_window.tableWidget.setRowCount(all_data.shape[0])        self.main_window.tableWidget.setColumnCount(all_data.shape[1])        self.main_window.tableWidget.setHorizontalHeaderLabels(all_data.columns)        for row in all_data.iterrows():            values = row[1]            for col_index, value in enumerate(values):                tableItem = QTableWidgetItem(str(value))                self.main_window.tableWidget.setItem(row[0], col_index, tableItem)

How to pass the variable of all_data from import_candy to show_candy?The import_candy can only run after the button is clicked.And after import, I want to show the table with the other button.

I read other questions, and then I tried,

def show_candy(self):    all_data = import_candy()    ~

and of course it needs me to import again, so it's not what I want.after that, I tried to declare Class level variable,

class Candy():    def __init__(self, main_window):        self.main_window = main_window    all_data = None

But I don't know how, If I declared

all_data = Candy.all_data

I have not import anything yet, so isn't it ambiguous?

I just need to pass variable from import_candy to show_candy. Any ideas?


Viewing all articles
Browse latest Browse all 207

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>