回答編集履歴

1

Bファイルの単独起動情報を追加

2020/10/19 09:21

投稿

lehshell
lehshell

スコア1156

test CHANGED
@@ -33,3 +33,91 @@
33
33
  ```
34
34
 
35
35
  と設定してみてください。
36
+
37
+
38
+
39
+ ### 10月19日追記
40
+
41
+ > できたのですが、Bファイルを単独で起動しようとしたときに
42
+
43
+ > txt.insert(tkinter.END, kwargs['id'])
44
+
45
+ > KeyError: 'id'
46
+
47
+ > とエラーがでてしまいます。
48
+
49
+
50
+
51
+ すでに解決されているため不要かもしれませんが
52
+
53
+ 「Bファイルを単独で起動」が「 gamen2 を単独で起動」の意味として ID と 名 を空欄で起動する前提で gamen2 を
54
+
55
+ ```Python
56
+
57
+ def main():
58
+
59
+ root = tk.Tk()
60
+
61
+ app = gamen2(master=root, id='', name='')
62
+
63
+ app.mainloop()
64
+
65
+
66
+
67
+ if __name__ == "__main__":
68
+
69
+ main()
70
+
71
+ ```
72
+
73
+ とするか gamen2 生成時のパラメータが id name 以外にないのであれば
74
+
75
+ app = gamen2(master=root)
76
+
77
+ は、そのままで、次のようにデフォルト値を持つ引数にする方法もあります。
78
+
79
+ ```Python
80
+
81
+ class gamen2(tkinter.Frame):
82
+
83
+ #def __init__(self, master=None, **kwargs):
84
+
85
+ def __init__(self, master=None, id='', name=''):
86
+
87
+ ...
88
+
89
+ #self.create_widgets(**kwargs)
90
+
91
+ self.create_widgets(id=id, name=name)
92
+
93
+ ...
94
+
95
+
96
+
97
+ def main():
98
+
99
+ root = tk.Tk()
100
+
101
+ app = gamen2(master=root)
102
+
103
+ app.mainloop()
104
+
105
+
106
+
107
+ if __name__ == "__main__":
108
+
109
+ main()
110
+
111
+ ```
112
+
113
+
114
+
115
+ なお、この場合
116
+
117
+ def create_widgets(self, **kwargs):
118
+
119
+
120
+
121
+ def create_widgets(self, id, name):
122
+
123
+ として create_widgets 内の kwargs も変更した方がバランスは良いかもしれません。