|
|
发表于 2023-6-29 23:10:53
|
显示全部楼层
本楼为最佳答案
代码中定义了一个全局变量`code_data`,但在`on_check_clicked`方法中的引用提示未定义的错误。这是因为在`on_select_clicked`方法中定义的局部变量`code_data`与全局变量`code_data`命名相同,导致在`on_check_clicked`方法中无法访问到全局变量。
要解决这个问题,你可以在`on_select_clicked`方法内将`code_data`声明为全局变量,使用`global`关键字进行声明,这样就可以在其他方法中正常引用了。
修改代码如下:
- @Slot()
- def on_select_clicked(self):
- import tkinter as tk
- from tkinter import filedialog as fd
- root = tk.Tk()
- root.withdraw()
- filename = fd.askopenfilename(filetypes=[('Excel Files', '*.xlsx')])
- self.ui.excelfile.setPlaceholderText(filename.replace('/','\\'))
- ws = openpyxl.load_workbook(filename)['Sheet1']
- global code_data # 将局部变量声明为全局变量
- code_data = dict(list(ws.iter_rows(values_only=True)))
复制代码
通过添加`global code_data`语句,将`code_data`声明为全局变量,就可以在其他方法中正常引用了。 |
|