質問編集履歴
2
少しコードの訂正をしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
self.frame = Frame(canvas)
|
32
32
|
|
33
|
-
canvas.create_window((0, 0), window=self.frame, anchor=NW
|
33
|
+
canvas.create_window((0, 0), window=self.frame, anchor=NW)
|
34
34
|
|
35
35
|
self.widget1()
|
36
36
|
self.label_lst = []
|
1
ラベルが表示されている下限までスクロール可能にしたい
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,11 +12,25 @@
|
|
12
12
|
class Application(Frame):
|
13
13
|
def __init__(self, master):
|
14
14
|
super().__init__(master)
|
15
|
-
self.grid()
|
16
15
|
|
17
16
|
master.geometry('1000x850')
|
18
17
|
master.title('DAアルゴリズムによるマッチングアプリ')
|
19
18
|
master.resizable(False, True)
|
19
|
+
|
20
|
+
canvas = Canvas(master)
|
21
|
+
|
22
|
+
bar = Scrollbar(self.master, orient=VERTICAL)
|
23
|
+
bar.pack(side=RIGHT, fill=Y)
|
24
|
+
bar.config(command=canvas.yview)
|
25
|
+
|
26
|
+
canvas.config(yscrollcommand=bar.set)
|
27
|
+
canvas.config(scrollregion=(0, 0, 0, 10000))
|
28
|
+
canvas.bind_all('<MouseWheel>', lambda eve: canvas.yview_scroll(int(-eve.delta/120), 'units'))
|
29
|
+
canvas.pack(side=LEFT, fill=BOTH, expand=True)
|
30
|
+
|
31
|
+
self.frame = Frame(canvas)
|
32
|
+
|
33
|
+
canvas.create_window((0, 0), window=self.frame, anchor=NW, width=980, height=850)
|
20
34
|
|
21
35
|
self.widget1()
|
22
36
|
self.label_lst = []
|
@@ -26,29 +40,29 @@
|
|
26
40
|
self.c_prefs = []
|
27
41
|
|
28
42
|
def widget1(self):
|
29
|
-
Label(self.m
|
43
|
+
Label(self.frame, text='学生の人数を入力 >>').grid(row=0, column=0, pady=5)
|
30
44
|
self.f1 = IntVar(value='')
|
31
|
-
Entry1 = Entry(self.m
|
45
|
+
Entry1 = Entry(self.frame, textvariable=self.f1, width=5).grid(row=0, column=1, pady=5)
|
32
46
|
|
33
|
-
Label(self.m
|
47
|
+
Label(self.frame, text='研究室の数を入力 >>').grid(row=0, column=2, pady=5)
|
34
48
|
self.f2 = IntVar(value='')
|
35
|
-
Entry2 = Entry(self.m
|
49
|
+
Entry2 = Entry(self.frame, textvariable=self.f2, width=5).grid(row=0, column=3, pady=5)
|
36
50
|
|
37
|
-
Button1 = Button(self.m
|
51
|
+
Button1 = Button(self.frame, text='OK', command=self.btn1_clicked, width=5).grid(row=0, column=4, pady=5)
|
38
52
|
|
39
53
|
def btn1_clicked(self):
|
40
54
|
S = self.f1.get()
|
41
55
|
C = self.f2.get()
|
42
56
|
|
43
57
|
for i in range(S):
|
44
|
-
label = Label(self.m
|
58
|
+
label = Label(self.frame, text=['学生',i+1,'の希望順に研究室の番号をスペース区切りで入力 >>']).grid(row=i+1, column=0, pady=5)
|
45
59
|
self.f_s_pref = StringVar(value='')
|
46
60
|
self.s_prefs.append(self.f_s_pref)
|
47
|
-
entry = Entry(self.m
|
61
|
+
entry = Entry(self.frame, textvariable=self.f_s_pref, width=40).grid(row=i+1, column=1, pady=5)
|
48
62
|
self.label_lst.append(label)
|
49
63
|
self.entry_lst.append(entry)
|
50
64
|
|
51
|
-
button = Button(self.m
|
65
|
+
button = Button(self.frame, text='OK', command=self.btn2_clicked, width=5).grid(row=S, column=2, pady=5)
|
52
66
|
self.button_lst.append(button)
|
53
67
|
|
54
68
|
def btn2_clicked(self):
|
@@ -56,27 +70,27 @@
|
|
56
70
|
C = self.f2.get()
|
57
71
|
|
58
72
|
for i in range(C):
|
59
|
-
label = Label(self.m
|
73
|
+
label = Label(self.frame, text=['研究室',i+1,'の希望順に学生の番号をスペース区切りで入力 >>']).grid(row=S+1+i, column=0, pady=5)
|
60
74
|
self.f_c_pref = StringVar(value='')
|
61
75
|
self.c_prefs.append(self.f_c_pref)
|
62
|
-
entry = Entry(self.m
|
76
|
+
entry = Entry(self.frame, textvariable=self.f_c_pref, width=40).grid(row=S+1+i, column=1, pady=5)
|
63
77
|
self.label_lst.append(label)
|
64
78
|
self.entry_lst.append(entry)
|
65
79
|
|
66
|
-
button = Button(self.m
|
80
|
+
button = Button(self.frame, text='OK', command=self.btn3_clicked, width=5).grid(row=S+1+i, column=2, pady=5)
|
67
81
|
self.button_lst.append(button)
|
68
82
|
|
69
83
|
def btn3_clicked(self):
|
70
84
|
S = self.f1.get()
|
71
85
|
C = self.f2.get()
|
72
86
|
|
73
|
-
label = Label(self.m
|
87
|
+
label = Label(self.frame, text=['研究室1から順に定員をスペース区切りで入力 >>']).grid(row=S+C+1, column=0, pady=5)
|
74
88
|
self.f_capa = StringVar(value='')
|
75
|
-
entry = Entry(self.m
|
89
|
+
entry = Entry(self.frame, textvariable=self.f_capa, width=20).grid(row=S+C+1, column=1, pady=5)
|
76
90
|
self.label_lst.append(label)
|
77
91
|
self.entry_lst.append(entry)
|
78
92
|
|
79
|
-
button = Button(self.m
|
93
|
+
button = Button(self.frame, text='OK', command=self.btn4_clicked, width=5).grid(row=S+C+1, column=2, pady=5)
|
80
94
|
self.button_lst.append(button)
|
81
95
|
|
82
96
|
def btn4_clicked(self):
|
@@ -147,18 +161,18 @@
|
|
147
161
|
num_match += 1
|
148
162
|
t += 1
|
149
163
|
|
150
|
-
Label(self.m
|
164
|
+
Label(self.frame, text='マッチング結果').grid(row=S+C+2, column=0, pady=5)
|
151
165
|
for i in range(S):
|
152
166
|
if s_matched[i]==-1:
|
153
|
-
label = Label(self.m
|
167
|
+
label = Label(self.frame, text='学生{0}:'.format(i+1)).grid(row=S+C+3+i, column=0, pady=5)
|
154
168
|
self.label_lst.append(label)
|
155
169
|
else:
|
156
|
-
label = Label(self.m
|
170
|
+
label = Label(self.frame, text='学生{0}: 研究室{1}'.format(i+1, s_matched[i]+1)).grid(row=S+C+3+i, column=0, pady=5)
|
157
171
|
self.label_lst.append(label)
|
158
172
|
|
159
173
|
for j in range(C):
|
160
174
|
if c_filled[j]==0:
|
161
|
-
label = Label(self.m
|
175
|
+
label = Label(self.frame, text=': 研究室{0}'.format(j+1)).grid(row=S+C+3+i, column=1, pady=5)
|
162
176
|
self.label_lst.apppend(label)
|
163
177
|
|
164
178
|
def main():
|