-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTk_Housekeeping_DataFrame.py
79 lines (61 loc) · 2.53 KB
/
Tk_Housekeeping_DataFrame.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import tkinter as tk
import tkinter.ttk as ttk
class HousekeepingDataFrame(tk.LabelFrame):
def __init__(self, parent, controller, pos, *args, **kwargs):
tk.LabelFrame.__init__(self, parent, *args, **kwargs)
self.parent = parent
self.controller = controller
self.pack(side=pos, anchor=tk.NW, expand=1, fill="both")
# Add line for Housekeeping data
self.label = tk.Label(
self, text="Request for Housekeeping data", pady=8)
self.label.pack()
# Add button to trigger housekeeping data command
self.start_hk_button = tk.Button(
self, text="Click here", command=controller.handle_hk_process_start)
self.start_hk_button.pack()
# Progress bar
self.pbar_container = tk.Frame(self, pady=4)
self.pbar = ttk.Progressbar(self.pbar_container, mode='indeterminate', length=100)
# Outcome message
self.outcome_message = tk.StringVar()
self.outcome_message_label = tk.Label(
self, textvariable=self.outcome_message)
self.outcome_message_label.pack(side=tk.BOTTOM)
def display_success_message(self):
self.outcome_message.set("Success!")
self.outcome_message_label["fg"] = 'green'
# Display message
self.outcome_message_label.pack(side=tk.BOTTOM)
# Set task to clear the message
self.after(10000, self.hk_outcome_message_clear)
def display_failed_message(self):
self.outcome_message.set("Failed!")
self.outcome_message_label["fg"] = 'red'
# Display message
self.outcome_message_label.pack(side=tk.BOTTOM)
# Set task to clear the message
self.after(10000, self.hk_outcome_message_clear)
def hk_outcome_message_clear(self):
self.outcome_message.set(" ")
# Show progress bar and hide start Housekeeping buton after clicked
def show_progress_bar(self):
# Hide button
self.start_hk_button.pack_forget()
# Display the progress bar
self.pbar_container.pack()
self.pbar.pack()
self.pbar.start()
self.after(100, self.controller.hk_process_checking)
# Stop progress bar
def stop_showing_progress_bar(self):
self.pbar.stop()
self.pbar_container.pack_forget()
self.start_hk_button.pack()
def disable_housekeeping_command(self):
# Hide button
self.start_hk_button.pack_forget()
# Display the progress bar
self.pbar_container.pack()
self.pbar.pack()
self.pbar.start()