Мне удалось найти решение, используя глобальные переменные и настраивая функции, которые устанавливают их при нажатии кнопки.Возможно, это не самое элегантное решение, но оно работает.
##############################################################
# SET GLOBAL VARS
global sVar
sVar = 'STOPIT'
global globPDF
globPDF = 0
global globSHP
globSHP = 0
##############################################################
# INPUT DIALOG
from tkinter import *
from tkinter import ttk
class mainwindow():
def __init__(self, master):
def set_globPDF_to_one():
global globPDF
globPDF = 1
def set_globPDF_to_zero():
global globPDF
globPDF = 0
def set_globSHP_to_one():
global globSHP
globSHP = 1
def set_globSHP_to_zero():
global globSHP
globSHP = 0
def setValues():
if varPDF.get() == True:
set_globPDF_to_one()
else:
set_globPDF_to_zero()
if varSHP.get() == True:
set_globSHP_to_one()
else:
set_globSHP_to_zero()
self.master = master
window = (self.master)
ttk.Label(window, text="Select Output:").grid(column=1
, row=1, sticky=W)
varPDF = BooleanVar()
cbxPDF = Checkbutton(window, text="PDF",
variable=varPDF, command=lambda: setValues())
cbxPDF.grid(column=1, row=2, sticky=W)
varSHP = BooleanVar()
cbxSHP = Checkbutton(window, text="SHP",
variable=varSHP, command=lambda: setValues())
cbxSHP.grid(column=1, row=3, sticky=W)
btnQuit = Button(window,text=u"Quit", command=self.end)
btnQuit.grid(column=2, row=4, sticky=E, pady=4, padx=10)
btnSbmt = Button(window,text=u"Submit", command=self.submit)
btnSbmt.grid(column=1, row=4, sticky=W, pady=4, padx=10)
def submit(self):
def set_sVar_to_run():
global sVar
sVar = 'COPYIT'
set_sVar_to_run()
self.master.destroy()
def end(self):
def set_sVar_to_stop():
global sVar
sVar = 'STOPIT'
set_sVar_to_stop()
print()
print('Quit')
self.master.destroy()
def main():
root = Tk()
window = mainwindow(root)
root.lift()
root.attributes('-topmost',True)
root.after_idle(root.attributes,'-topmost',True)
root.mainloop()
if __name__ == '__main__':
main()
# show output variables
print('sVar: '+sVar)
print('globPDF: '+str(globPDF))
print('globSHP: '+str(globSHP))