Aug-24-2018, 11:56 AM
Hi Team
Here I am facing one issue. I am basically trying to create one basic automation app for desktop. In which one main window will be there with several scenarios & if we choose one scenario & then click submit button, another tkinter window will appear asking for specific inputs from user & after users enter the inputs & press submit button the control will be back to main window & the parameters given by users will be stored in variables defined inside main program. When I am trying to get the output from inside of the side program, the output is coming properly. But when I am trying to call it from the main program only default values of those variables are coming, not values updated by users.
Side Program
Here I am facing one issue. I am basically trying to create one basic automation app for desktop. In which one main window will be there with several scenarios & if we choose one scenario & then click submit button, another tkinter window will appear asking for specific inputs from user & after users enter the inputs & press submit button the control will be back to main window & the parameters given by users will be stored in variables defined inside main program. When I am trying to get the output from inside of the side program, the output is coming properly. But when I am trying to call it from the main program only default values of those variables are coming, not values updated by users.
Side Program
import Tkinter as tk
class Reboot_param:
def __init__(self,master):
self.time_to_wait=0
self.master=master
self.label_ttw = tk.Label(self.master,text="Time to Wait")
self.label_ttw.grid(row=0,column=0)
self.ttw = tk.IntVar()
self.entry_ttw = tk.Entry(self.master,textvariable=self.ttw,width=20)
self.entry_ttw.grid(row=0,column=2)
self.button_submit = tk.Button(self.master,text="Submit",command = self.getvar)
self.button_submit.grid(row=1,column=1)
self.button_close = tk.Button(self.master, text="Close", command=self.master.destroy)
self.button_close.grid(row=1, column=2)
def getvar(self):
self.time_to_wait=self.ttw.get()
if __name__ == '__main__':
window=tk.Tk()
reboot = Reboot_param(window)
window.mainloop()
print reboot.time_to_waitOutput:90Main Programimport Tkinter as tk
from multiprocessing import process
from devices import DeviceSelection
from voice_setup import voiceSetup
import reboot_param as reb
from message_params import MessageParams
class automation_suite:
def __init__(self,master):
self.tel_no = 0
self.iteration = 0
self.text = ""
self.call_duration = 0
self.time_to_wait = 0
self.master=master
self.scenariolist=["Voice Call","VT Call","Reboot","SMS"]
self.frame_scenario = tk.Frame(self.master)
self.frame_scenario.pack(side=tk.TOP,fill=tk.X,expand=tk.YES,padx=10,pady=10)
self.label_scenario = tk.Label(self.frame_scenario,text="Scenario: ",width=10)
self.label_scenario.pack(side=tk.LEFT,fill=tk.X)
self.scenarios=tk.StringVar()
self.scenarios.set('')
self.scenario_select_menu=tk.OptionMenu(self.frame_scenario,self.scenarios,*self.scenariolist)
self.scenario_select_menu.pack(side=tk.LEFT,fill=tk.X,padx=10)
self.frame_data = tk.Frame(self.master)
self.frame_data.pack(side=tk.TOP,fill=tk.X,expand=tk.YES)
self.devicelist=["Device 1","Device 2","Device 3"]
self.label_device= tk.Label(self.frame_scenario,text="Device: ",width=10)
self.label_device.pack(side=tk.LEFT,fill=tk.X)
self.device=tk.StringVar()
self.device.set('')
self.device_select_menu=tk.OptionMenu(self.frame_scenario,self.device,*self.devicelist)
self.device_select_menu.pack(side=tk.LEFT,fill=tk.X,padx=10)
self.frame_button = tk.Frame(window)
self.frame_button.pack(side=tk.TOP,fill=tk.X)
self.button = tk.Button(self.frame_button,text="Start Test Execution",width=15,command=self.start_execute)
self.button.pack(side=tk.LEFT,padx=15,pady=15)
self.button2 = tk.Button(self.frame_button, text="Detect Devices", width=15,command=self.get_devices)
self.button2.pack(side=tk.LEFT, padx=15, pady=15)
def start_execute(self):
root = tk.Tk()
if self.scenarios.get()=="Voice Call" or self.scenarios.get()=="VT Call":
voice=voiceSetup()
print voice.data_list
self.tel_no=voice.data_list[0]
self.iteration = voice.data_list[1]
self.call_duration = voice.data_list[2]
self.time_to_wait=voice.data_list[3]
elif self.scenarios.get()=="Reboot":
reboot = reb.Reboot_param(root)
root.mainloop()
print reboot.time_to_wait
elif self.scenarios.get()=="SMS":
message = MessageParams()
self.tel_no = message.data_list[0]
self.iteration = message.data_list[1]
self.time_to_wait = message.data_list[2]
self.text = message.data_list[3]
def get_devices(self):
self.device_select_menu['menu'].delete(0, tk.END)
self.devicelist = DeviceSelection().list
for item in self.devicelist:
self.device_select_menu['menu'].add_command(label=item, command=tk._setit(self.device, item))
if __name__ == '__main__':
window = tk.Tk()
auto = automation_suite(window)
window.mainloop()Output:0Please help. Thanks in advance
