回答編集履歴

3

修正箇所について追記

2020/06/01 12:22

投稿

teamikl
teamikl

スコア8681

test CHANGED
@@ -52,15 +52,27 @@
52
52
 
53
53
 
54
54
 
55
+ # XXX: このコードで同じエラーを再現できます。
56
+
55
57
  create_num = root.Entry(root)
56
58
 
57
59
  ```
58
60
 
59
61
 
60
62
 
61
- 修正方法、Tk()のインスタンスと、ttkモジュールを区別します
63
+ 修正方法、Tk()のインスタンスと、ttkモジュールを区別します
62
64
 
63
65
 
66
+
67
+ root が未定義なので、
68
+
69
+ 元の参考にしたコードで root 変数がどのように作られてるのか確認しましょう。
70
+
71
+ Tk のインスタンスと、ttkモジュールを混同してしまってます。
72
+
73
+
74
+
75
+ 実際の修正箇所は以下の通りです
64
76
 
65
77
  ```python
66
78
 
@@ -70,18 +82,34 @@
70
82
 
71
83
 
72
84
 
73
- root = tkinter.Tk()
85
+ # XXX: root = 1 は削除
74
86
 
75
87
 
76
88
 
89
+ # Tkクラス生成
90
+
91
+ root = tkinter.Tk()
92
+
93
+ # 画面サイズ
94
+
77
- create_num = ttk.Entry(root) # <-- tkk モジュールの Entry クラスを使う
95
+ root.geometry('300x200')
96
+
97
+ # 画面タイトル
98
+
99
+ root.title('')
100
+
101
+
78
102
 
79
103
  ```
80
104
 
81
105
 
82
106
 
83
- root が未定義なの
107
+ クラスの部分 `ttk.Entry(root)` については、ttk/root を区別するように修正すれば変更不要す。
84
108
 
85
- 元の参考にしたコードで root 変数がどのよう作られてるか確認ししょう
109
+ `from tkinter import ttk` で事前モジュールみ読み込んでおき
86
110
 
111
+
112
+
87
- Tk インスタンスとttkモジュールを混同してしまってま
113
+ 今回質問のエラーは本来モジュールのクラス参照る部分を
114
+
115
+ 別の同名変数を作ってしまったことによるものです。

2

コードの抜粋箇所について修正

2020/06/01 12:22

投稿

teamikl
teamikl

スコア8681

test CHANGED
@@ -10,9 +10,13 @@
10
10
 
11
11
 
12
12
 
13
+ # 省略
13
14
 
14
15
 
16
+
17
+ #チェックボックスを作りたい個数を入力
18
+
15
- ttk.Entry(root)
19
+ create_num = ttk.Entry(root)
16
20
 
17
21
  ```
18
22
 
@@ -46,7 +50,9 @@
46
50
 
47
51
  root = tkinter.Tk()
48
52
 
53
+
54
+
49
- root.Entry(root)
55
+ create_num = root.Entry(root)
50
56
 
51
57
  ```
52
58
 
@@ -68,7 +74,7 @@
68
74
 
69
75
 
70
76
 
71
- ttk.Entry(root) # <-- tkk モジュールの Entry クラスを使う
77
+ create_num = ttk.Entry(root) # <-- tkk モジュールの Entry クラスを使う
72
78
 
73
79
  ```
74
80
 

1

途中送信してしまったので修正

2020/06/01 11:35

投稿

teamikl
teamikl

スコア8681

test CHANGED
@@ -24,6 +24,18 @@
24
24
 
25
25
 
26
26
 
27
+ tkinter のコードでは、
28
+
29
+ 通常 "ttk" は `from tkinter import ttk` として
30
+
31
+ "tkinter.ttk" モジュールを指します。
32
+
33
+
34
+
35
+ Tk() のインスタンスに Entry は有りません。
36
+
37
+ 変数名を変えてみると、おかしなところが解ると思います。
38
+
27
39
 
28
40
 
29
41
  ```python
@@ -37,6 +49,10 @@
37
49
  root.Entry(root)
38
50
 
39
51
  ```
52
+
53
+
54
+
55
+ 修正方法、Tk()のインスタンスと、ttkモジュールを区別します
40
56
 
41
57
 
42
58
 
@@ -58,16 +74,6 @@
58
74
 
59
75
 
60
76
 
61
-
62
-
63
- tkinter のコードでは、
64
-
65
- 通常 "ttk" は `from tkinter import ttk` として
66
-
67
- "tkinter.ttk" モジュールを指します。
68
-
69
-
70
-
71
77
  root が未定義なので、
72
78
 
73
79
  元の参考にしたコードで root 変数がどのように作られてるのか確認しましょう。