-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathwindow_models.py
More file actions
66 lines (55 loc) · 2.44 KB
/
Copy pathwindow_models.py
File metadata and controls
66 lines (55 loc) · 2.44 KB
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
import tkinter as tk
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from App import Main
from Models import StyleModel, get_model_layers
class ModelDialog(tk.Toplevel):
def __init__(self, parent: 'Main', name):
tk.Toplevel.__init__(self, parent)
self.master = parent
self.title('Select model layers.')
self.resizable(False, False)
self.attributes('-topmost', 'true')
self.focus_force()
self.grab_set()
self.pick_name = name
self.layers, conv_list = get_model_layers(name)
tk.Label(self, text='Model: {}'.format(name), bg='gray', font=('Times', 14)).grid(
row=0, column=0, columnspan=2, padx=5, pady=5, sticky=tk.NSEW
)
tk.Label(self, text='Content Layers', bg='gray', font=('Times', 12)).grid(
row=1, column=0, padx=5, pady=2, sticky=tk.NSEW
)
tk.Label(self, text='Style Layers', bg='gray', font=('Times', 12)).grid(
row=1, column=1, padx=5, pady=2, sticky=tk.NSEW
)
f_ct = tk.Frame(self, bd=2, bg='gray')
f_ct.grid(row=2, column=0, padx=5, pady=5, sticky=tk.NSEW)
self.ctly = {}
for ly in conv_list:
self.ctly[ly] = tk.BooleanVar(value=0)
tk.Checkbutton(f_ct, text=ly, variable=self.ctly[ly], bg='gray', font=(None, 11)).pack(
padx=10, pady=2, side=tk.TOP, anchor=tk.W
)
f_st = tk.Frame(self, bd=2, bg='gray')
f_st.grid(row=2, column=1, padx=5, pady=5, sticky=tk.NSEW)
self.stly = {}
for ly in conv_list:
self.stly[ly] = tk.BooleanVar(value=0)
tk.Checkbutton(f_st, text=ly, variable=self.stly[ly], bg='gray', font=(None, 11)).pack(
padx=10, pady=2, side=tk.TOP, anchor=tk.W
)
tk.Button(self, text='Ok', command=self.ok, font=(None, 12)).grid(
row=3, column=0, columnspan=2, padx=5, pady=5, sticky=tk.NSEW
)
self.wait_window()
def ok(self):
self.master.model_name = self.pick_name
self.master.net = StyleModel(self.layers)
content_layers = [k for k in self.ctly if self.ctly[k].get() == True]
style_layers = [k for k in self.stly if self.stly[k].get() == True]
self.master.content_layers = content_layers
self.master.style_layers = style_layers
self.master.net.set_layers(content_layers, style_layers)
self.master.seted = False
self.destroy()