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

回答編集履歴

5

注意書き追記

2020/01/12 12:27

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -1,5 +1,6 @@
1
1
  こんな書き方はいかが?
2
2
  配列アクセスや属性アクセス(`__getattr__`)もできるようにクラスを作ってみました。
3
+ ただ、Entriesはmainloopから抜けると`get()`できなくなるため、`StringVar()` を使うように変えた方がよさそうです。
3
4
 
4
5
  ```python
5
6
  import sys

4

ユニコード指定は不要なので削除

2020/01/12 12:27

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -30,7 +30,7 @@
30
30
  entries = Entries()
31
31
 
32
32
  root = tkinter.Tk()
33
- root.title(u"GUI_test")
33
+ root.title("GUI_test")
34
34
 
35
35
  for label in labels:
36
36
  tkinter.Label(text=label).pack()

3

スペルミス修正

2020/01/12 12:23

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -4,8 +4,8 @@
4
4
  ```python
5
5
  import sys
6
6
  import tkinter
7
- import numpy as np
7
+ #import numpy as np
8
- import matplotlib.pyplot as plt
8
+ #import matplotlib.pyplot as plt
9
9
 
10
10
  labels = dict(x0=0, y0=0,
11
11
  nx='', ny='',
@@ -50,9 +50,12 @@
50
50
  y += [y_center + Py_small/2] * 4
51
51
  return x, y
52
52
 
53
+
53
- def caliculate():
54
+ def calculate():
54
55
  values = [int(entries[label]) for label in labels]
55
56
  x, y = generate_xy(*values)
57
+ print(x)
58
+ print(y)
56
59
  for label in labels:
57
60
  print(label + ':' + entries[label])
58
61
  fig = plt.figure(figsize=(5,5))
@@ -66,7 +69,7 @@
66
69
  fig.show()
67
70
 
68
71
 
69
- tkinter.Button(text='Submit', command=caliculate).pack()
72
+ tkinter.Button(text='Calculate', command=calculate).pack()
70
73
 
71
74
  root.mainloop()
72
75
  ```

2

append処理簡略化

2020/01/12 06:04

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -42,21 +42,14 @@
42
42
  def generate_xy(x0, y0, nx, ny, Px_small, Py_small, Px_large, Py_large):
43
43
  x = []
44
44
  y = []
45
- for i in range(nx):
45
+ for xi in range(nx):
46
- for j in range(ny):
46
+ for yi in range(ny):
47
- x_center = x0 - i*Px_large
47
+ x_center = x0 - xi*Px_large
48
- y_center = y0 - j*Py_large
48
+ y_center = y0 - yi*Py_large
49
- x.append(x_center + Px_small/2)
49
+ x += [x_center + Px_small/2] * 4
50
- y.append(y_center + Py_small/2)
50
+ y += [y_center + Py_small/2] * 4
51
- x.append(x_center + Px_small/2)
52
- y.append(y_center - Py_small/2)
53
- x.append(x_center - Px_small/2)
54
- y.append(y_center - Py_small/2)
55
- x.append(x_center - Px_small/2)
56
- y.append(y_center + Py_small/2)
57
51
  return x, y
58
52
 
59
-
60
53
  def caliculate():
61
54
  values = [int(entries[label]) for label in labels]
62
55
  x, y = generate_xy(*values)

1

デバッグ行削除

2020/01/12 05:51

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -59,7 +59,6 @@
59
59
 
60
60
  def caliculate():
61
61
  values = [int(entries[label]) for label in labels]
62
- print(values)
63
62
  x, y = generate_xy(*values)
64
63
  for label in labels:
65
64
  print(label + ':' + entries[label])