質問編集履歴

1

自分で分割したソースコードを追記

2021/09/02 23:54

投稿

ysyk77
ysyk77

スコア4

test CHANGED
File without changes
test CHANGED
@@ -167,3 +167,201 @@
167
167
  ### 試したこと
168
168
 
169
169
  create_tab1()、create_tab2()を別ファイルにして、動作をさせることが出来ましたが、labelの内容を書換る為にウィジェット変数にアクセス出来ませんでした。
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+ #【追記】自分で分割したソース
178
+
179
+ TestTab.py、mtab1.py、mtab2.pyの3つに分割しました。
180
+
181
+
182
+
183
+ ### 該当のソースコード
184
+
185
+ メイン:TestTab.py
186
+
187
+
188
+
189
+ ```Python
190
+
191
+ #!/usr/bin/python3
192
+
193
+ # -*- coding: utf8 -*-
194
+
195
+ import tkinter as tk
196
+
197
+ import tkinter.ttk as ttk
198
+
199
+ import mtab1
200
+
201
+ import mtab2
202
+
203
+
204
+
205
+
206
+
207
+ class Application(tk.Frame):
208
+
209
+ def __init__(self, master=None):
210
+
211
+ super().__init__(master)
212
+
213
+ self.pack()
214
+
215
+ self.create_widgets()
216
+
217
+ return
218
+
219
+
220
+
221
+ def create_widgets(self):
222
+
223
+ nb = ttk.Notebook(self)
224
+
225
+ tab1 = tk.Frame(nb)
226
+
227
+ tab2 = tk.Frame(nb)
228
+
229
+ nb.add(tab1, text='tab1', padding=3)
230
+
231
+ nb.add(tab2, text='tab2', padding=3)
232
+
233
+ nb.pack(expand=1, fill='both')
234
+
235
+ mtab1.create_tab1(self,tab1)
236
+
237
+ mtab2.create_tab2(self,tab2)
238
+
239
+
240
+
241
+
242
+
243
+ # メイン関数
244
+
245
+ def main():
246
+
247
+ root = tk.Tk()
248
+
249
+ root.geometry("200x100")
250
+
251
+ root.title(u"Tab Test")
252
+
253
+ app = Application(master=root)
254
+
255
+ app.mainloop()
256
+
257
+ pass
258
+
259
+
260
+
261
+ if __name__ == '__main__':
262
+
263
+ main()
264
+
265
+ ```
266
+
267
+
268
+
269
+
270
+
271
+ mtab1.py
272
+
273
+ 関係ないところ省略
274
+
275
+
276
+
277
+ ```Python
278
+
279
+ # tab1
280
+
281
+ def create_tab1(self,tab1):
282
+
283
+ text1 = tk.StringVar()
284
+
285
+ text1.set("Tab1:Hello ")
286
+
287
+ label1 = tk.Label(tab1, textvariable = text1)
288
+
289
+ label1.pack()
290
+
291
+ btnTab1 = tk.Button(tab1)
292
+
293
+ btnTab1["text"] = "Test"
294
+
295
+ btnTab1["command"] = btnTab1_func
296
+
297
+ btnTab1["width"] = 12
298
+
299
+ btnTab1.pack()
300
+
301
+ return
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+ # callback
310
+
311
+ def btnTab1_func():
312
+
313
+ text1.set("Tab1:goodbye ")
314
+
315
+ print("Tab1 button Push ")
316
+
317
+ return
318
+
319
+
320
+
321
+ ```
322
+
323
+ mtab2.py
324
+
325
+ 関係ないところ省略
326
+
327
+
328
+
329
+ ```Python
330
+
331
+ # tab2
332
+
333
+ def create_tab2(self,tab2):
334
+
335
+ text2 = tk.StringVar()
336
+
337
+ text2.set("Tab2:Hello ")
338
+
339
+ label2 = tk.Label(tab2, textvariable = text2)
340
+
341
+ label2.pack()
342
+
343
+ btnTab2 = tk.Button(tab2)
344
+
345
+ btnTab2["text"] = "Test"
346
+
347
+ btnTab2["command"] = btnTab2_func
348
+
349
+ btnTab2["width"] = 12
350
+
351
+ btnTab2.pack()
352
+
353
+
354
+
355
+
356
+
357
+ # callback
358
+
359
+ def btnTab2_func():
360
+
361
+ text2.set("Tab2:goodbye ")
362
+
363
+ print("Tab2 button Push ")
364
+
365
+ return
366
+
367
+ ```