teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

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

2021/09/02 23:54

投稿

ysyk77
ysyk77

スコア4

title CHANGED
File without changes
body CHANGED
@@ -82,4 +82,103 @@
82
82
  ```
83
83
 
84
84
  ### 試したこと
85
- create_tab1()、create_tab2()を別ファイルにして、動作をさせることが出来ましたが、labelの内容を書換る為にウィジェット変数にアクセス出来ませんでした。
85
+ create_tab1()、create_tab2()を別ファイルにして、動作をさせることが出来ましたが、labelの内容を書換る為にウィジェット変数にアクセス出来ませんでした。
86
+
87
+
88
+
89
+ #【追記】自分で分割したソース
90
+ TestTab.py、mtab1.py、mtab2.pyの3つに分割しました。
91
+
92
+ ### 該当のソースコード
93
+ メイン:TestTab.py
94
+
95
+ ```Python
96
+ #!/usr/bin/python3
97
+ # -*- coding: utf8 -*-
98
+ import tkinter as tk
99
+ import tkinter.ttk as ttk
100
+ import mtab1
101
+ import mtab2
102
+
103
+
104
+ class Application(tk.Frame):
105
+ def __init__(self, master=None):
106
+ super().__init__(master)
107
+ self.pack()
108
+ self.create_widgets()
109
+ return
110
+
111
+ def create_widgets(self):
112
+ nb = ttk.Notebook(self)
113
+ tab1 = tk.Frame(nb)
114
+ tab2 = tk.Frame(nb)
115
+ nb.add(tab1, text='tab1', padding=3)
116
+ nb.add(tab2, text='tab2', padding=3)
117
+ nb.pack(expand=1, fill='both')
118
+ mtab1.create_tab1(self,tab1)
119
+ mtab2.create_tab2(self,tab2)
120
+
121
+
122
+ # メイン関数
123
+ def main():
124
+ root = tk.Tk()
125
+ root.geometry("200x100")
126
+ root.title(u"Tab Test")
127
+ app = Application(master=root)
128
+ app.mainloop()
129
+ pass
130
+
131
+ if __name__ == '__main__':
132
+ main()
133
+ ```
134
+
135
+
136
+ mtab1.py
137
+ 関係ないところ省略
138
+
139
+ ```Python
140
+ # tab1
141
+ def create_tab1(self,tab1):
142
+ text1 = tk.StringVar()
143
+ text1.set("Tab1:Hello ")
144
+ label1 = tk.Label(tab1, textvariable = text1)
145
+ label1.pack()
146
+ btnTab1 = tk.Button(tab1)
147
+ btnTab1["text"] = "Test"
148
+ btnTab1["command"] = btnTab1_func
149
+ btnTab1["width"] = 12
150
+ btnTab1.pack()
151
+ return
152
+
153
+
154
+
155
+ # callback
156
+ def btnTab1_func():
157
+ text1.set("Tab1:goodbye ")
158
+ print("Tab1 button Push ")
159
+ return
160
+
161
+ ```
162
+ mtab2.py
163
+ 関係ないところ省略
164
+
165
+ ```Python
166
+ # tab2
167
+ def create_tab2(self,tab2):
168
+ text2 = tk.StringVar()
169
+ text2.set("Tab2:Hello ")
170
+ label2 = tk.Label(tab2, textvariable = text2)
171
+ label2.pack()
172
+ btnTab2 = tk.Button(tab2)
173
+ btnTab2["text"] = "Test"
174
+ btnTab2["command"] = btnTab2_func
175
+ btnTab2["width"] = 12
176
+ btnTab2.pack()
177
+
178
+
179
+ # callback
180
+ def btnTab2_func():
181
+ text2.set("Tab2:goodbye ")
182
+ print("Tab2 button Push ")
183
+ return
184
+ ```