2 回答
TA贡献1785条经验 获得超8个赞
由于事件循环的工作方式,这是不可能的。但是由于您正在使用一个类,您可以只使用一个实例变量。简化:
class MyApp:
def __init__(self):
...
self.my_var = None
button = Gtk.Button()
button.connect("clicked", self.on_button_clicked)
def on_button_clicked(self, widget):
...
self.my_var = "something"
那时self.my_var在课堂上的任何其他地方使用。
TA贡献2012条经验 获得超12个赞
这些是更好的解决方案。这是我更新的代码:
def on_browse_clicked(self, widget):
"""Creates dialogue box to choose file for loading data when browse button is clicked"""
dialog = Gtk.FileChooserDialog("Please choose a file", None,
Gtk.FileChooserAction.OPEN,
(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
response = dialog.run()
if response == Gtk.ResponseType.OK:
print("Open clicked")
global file
file = dialog.get_filename()
dialog.destroy()
self.browse_entry.set_text(file)
wb = xlrd.open_workbook(file)
sheet = wb.sheet_by_index(0)
for i in range(1, sheet.nrows):
data = sheet.row_values(i)
print(data)
self.production_data_list_store.append(data)
else:
dialog.destroy()
添加回答
举报