MCPcopy Index your code
hub / github.com/LCBOWER33/StegoScan / CheckboxGroup

Class CheckboxGroup

StegoScan.py:1480–1523  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1478 inner_frame.grid(row=0, column=0, padx=20, pady=20)
1479
1480 class CheckboxGroup:
1481 def __init__(self, parent, group_title, options, row, columns):
1482 self.frame = ttk.LabelFrame(parent, text=group_title, padding=10)
1483 self.frame.grid(row=row, column=0, columnspan=3, pady=10, sticky="ew")
1484
1485 self.options = options # Store option labels
1486 self.vars = []
1487 self.select_all_var1 = tk.BooleanVar()
1488 self.select_all_var2 = tk.BooleanVar()
1489
1490 label = "Select All"
1491 if group_title == "File Types":
1492 chk = ttk.Checkbutton(self.frame, text=label, variable=self.select_all_var2,
1493 command=self.toggle_all_and_disable, bootstyle="primary-round-toggle")
1494
1495
1496 else:
1497 chk = ttk.Checkbutton(self.frame, text=label, variable=self.select_all_var1,
1498 command=self.toggle_all, bootstyle="primary-round-toggle")
1499 chk.grid(row=0, column=0, padx=5, pady=2, sticky="w")
1500
1501 for i, label in enumerate(options):
1502 var = tk.BooleanVar()
1503 self.vars.append(var)
1504 row, col = divmod(i, columns)
1505
1506 chk = ttk.Checkbutton(self.frame, text=label, variable=var, bootstyle="primary-round-toggle")
1507 chk.grid(row=row + 1, column=col, padx=5, pady=2, sticky="w")
1508
1509 def toggle_all(self):
1510 state1 = self.select_all_var1.get()
1511 for var in self.vars:
1512 var.set(state1)
1513
1514 def toggle_all_and_disable(self):
1515 state2 = self.select_all_var2.get()
1516 for var in self.vars:
1517 var.set(state2)
1518 num_downloads_entry.config(state=tk.DISABLED if state2 else tk.NORMAL)
1519
1520 def get_selected(self):
1521 """ Returns selected checkboxes, or 'all' if everything is selected """
1522 selected = [label for var, label in zip(self.vars[1:], self.options) if var.get()]
1523 return "all" if len(selected) + 1 == len(self.options) else selected
1524
1525 labels = {
1526 "Tests": ["lsb", "jpeg", "image_integrity", "audio_integrity", "object_detection", "binary", "elf_check", "png",

Callers 1

create_guiFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected