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

回答編集履歴

2

追記

2017/11/04 11:35

投稿

toritoritorina
toritoritorina

スコア972

answer CHANGED
@@ -32,4 +32,17 @@
32
32
  先程のetnry1.bind...の記述は残しておいても動きます。エンターキーと、↑↓で動くようになります。
33
33
  ```python
34
34
  entry1 = tk.Spinbox(frame2,text="",width=10, from_ = 1, to = 1000, command=get_user_data)
35
+ ```
36
+ 連続で押すとどんどん入力欄に値が入るので、毎回消す場合は以下のようにget_user_dataの最初でdeleteを呼び出してください。
37
+ ```python
38
+ def get_user_data(event=None):
39
+ """利用者IDを取得し、データを反映する"""
40
+ entry2.delete('0', 'end')
41
+ entry3.delete('0', 'end')
42
+ entry4.delete('0', 'end')
43
+ entry5.delete('0', 'end')
44
+ try:
45
+ ...
46
+ ...
47
+ ...
35
48
  ```

1

追記

2017/11/04 11:35

投稿

toritoritorina
toritoritorina

スコア972

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  root.mainloopの前に以下のコードを入れてください。
2
2
  ```python
3
3
 
4
- def get_user_data(event):
4
+ def get_user_data(event=None):
5
5
  """利用者IDを取得し、データを反映する"""
6
6
  try:
7
7
  user_id = int(entry1.get())
@@ -24,6 +24,12 @@
24
24
  entry1.bind('<Return>', get_user_data)
25
25
  root.mainloop()
26
26
  ```
27
- とりあえずですが、「利用者ID」欄に入力してエンター後にデータを取得するものとしています。
27
+ とりあえずですが、「利用者ID」欄に入力してエンター後にデータを取得するサンプルです。
28
28
  entry1.bind('<Return>', get_user_data) で、エンターを押すとget_user_data関数が呼ばれるようにしています。
29
- 姓、名、セイ、カナをプログラム上に直接記載して各入力欄にセットしていますが、この部分はデータベースから取り出した値にしてください。
29
+ 姓、名、セイ、カナをプログラム上に直接記載して各入力欄にセットしていますが、この部分はデータベースから取り出した値にしてください。
30
+
31
+ もしSpinboxでの↑↓選択でユーザー情報を変更したいならば、entry1を以下のように変更し、get_user_data関数を以下のコードより前に移動してください。import tkinter as tkの下とかでも良いです。
32
+ 先程のetnry1.bind...の記述は残しておいても動きます。エンターキーと、↑↓で動くようになります。
33
+ ```python
34
+ entry1 = tk.Spinbox(frame2,text="",width=10, from_ = 1, to = 1000, command=get_user_data)
35
+ ```