回答編集履歴
3
修正箇所について追記
answer
CHANGED
|
@@ -25,20 +25,34 @@
|
|
|
25
25
|
|
|
26
26
|
root = tkinter.Tk()
|
|
27
27
|
|
|
28
|
+
# XXX: このコードで同じエラーを再現できます。
|
|
28
29
|
create_num = root.Entry(root)
|
|
29
30
|
```
|
|
30
31
|
|
|
31
|
-
修正方法、Tk()のインスタンスと、ttkモジュールを区別します
|
|
32
|
+
修正方法、Tk()のインスタンスと、ttkモジュールを区別します。
|
|
32
33
|
|
|
34
|
+
root が未定義なので、
|
|
35
|
+
元の参考にしたコードで root 変数がどのように作られてるのか確認しましょう。
|
|
36
|
+
Tk のインスタンスと、ttkモジュールを混同してしまってます。
|
|
37
|
+
|
|
38
|
+
実際の修正箇所は以下の通りです
|
|
33
39
|
```python
|
|
34
40
|
import tkinter
|
|
35
41
|
from tkinter import ttk
|
|
36
42
|
|
|
43
|
+
# XXX: root = 1 は削除
|
|
44
|
+
|
|
45
|
+
# Tkクラス生成
|
|
37
46
|
root = tkinter.Tk()
|
|
47
|
+
# 画面サイズ
|
|
48
|
+
root.geometry('300x200')
|
|
49
|
+
# 画面タイトル
|
|
50
|
+
root.title('')
|
|
38
51
|
|
|
39
|
-
create_num = ttk.Entry(root) # <-- tkk モジュールの Entry クラスを使う
|
|
40
52
|
```
|
|
41
53
|
|
|
42
|
-
root
|
|
54
|
+
クラスの部分 `ttk.Entry(root)` については、ttk/root を区別するように修正すれば変更不要です。
|
|
43
|
-
|
|
55
|
+
`from tkinter import ttk` で事前にモジュールのみ読み込んでおきます。
|
|
56
|
+
|
|
44
|
-
|
|
57
|
+
今回の質問のエラーは、本来モジュールのクラスを参照する部分を
|
|
58
|
+
別の同名変数を作ってしまったことによるものです。
|
2
コードの抜粋箇所について修正
answer
CHANGED
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
ttk = Tk()
|
|
6
6
|
|
|
7
|
+
# 省略
|
|
7
8
|
|
|
9
|
+
#チェックボックスを作りたい個数を入力
|
|
8
|
-
ttk.Entry(root)
|
|
10
|
+
create_num = ttk.Entry(root)
|
|
9
11
|
```
|
|
10
12
|
|
|
11
13
|
双方は個別に見た場合はエラー無く実行可能出来るコードですが、
|
|
@@ -22,7 +24,8 @@
|
|
|
22
24
|
import tkinter
|
|
23
25
|
|
|
24
26
|
root = tkinter.Tk()
|
|
27
|
+
|
|
25
|
-
root.Entry(root)
|
|
28
|
+
create_num = root.Entry(root)
|
|
26
29
|
```
|
|
27
30
|
|
|
28
31
|
修正方法、Tk()のインスタンスと、ttkモジュールを区別します
|
|
@@ -33,7 +36,7 @@
|
|
|
33
36
|
|
|
34
37
|
root = tkinter.Tk()
|
|
35
38
|
|
|
36
|
-
ttk.Entry(root) # <-- tkk モジュールの Entry クラスを使う
|
|
39
|
+
create_num = ttk.Entry(root) # <-- tkk モジュールの Entry クラスを使う
|
|
37
40
|
```
|
|
38
41
|
|
|
39
42
|
root が未定義なので、
|
1
途中送信してしまったので修正
answer
CHANGED
|
@@ -11,7 +11,13 @@
|
|
|
11
11
|
双方は個別に見た場合はエラー無く実行可能出来るコードですが、
|
|
12
12
|
問題点はここで ttk という変数名を使った点。
|
|
13
13
|
|
|
14
|
+
tkinter のコードでは、
|
|
15
|
+
通常 "ttk" は `from tkinter import ttk` として
|
|
16
|
+
"tkinter.ttk" モジュールを指します。
|
|
14
17
|
|
|
18
|
+
Tk() のインスタンスに Entry は有りません。
|
|
19
|
+
変数名を変えてみると、おかしなところが解ると思います。
|
|
20
|
+
|
|
15
21
|
```python
|
|
16
22
|
import tkinter
|
|
17
23
|
|
|
@@ -19,6 +25,8 @@
|
|
|
19
25
|
root.Entry(root)
|
|
20
26
|
```
|
|
21
27
|
|
|
28
|
+
修正方法、Tk()のインスタンスと、ttkモジュールを区別します
|
|
29
|
+
|
|
22
30
|
```python
|
|
23
31
|
import tkinter
|
|
24
32
|
from tkinter import ttk
|
|
@@ -28,11 +36,6 @@
|
|
|
28
36
|
ttk.Entry(root) # <-- tkk モジュールの Entry クラスを使う
|
|
29
37
|
```
|
|
30
38
|
|
|
31
|
-
|
|
32
|
-
tkinter のコードでは、
|
|
33
|
-
通常 "ttk" は `from tkinter import ttk` として
|
|
34
|
-
"tkinter.ttk" モジュールを指します。
|
|
35
|
-
|
|
36
39
|
root が未定義なので、
|
|
37
40
|
元の参考にしたコードで root 変数がどのように作られてるのか確認しましょう。
|
|
38
41
|
Tk のインスタンスと、ttkモジュールを混同してしまってます。
|