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

質問編集履歴

3

追記

2020/08/27 16:58

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,7 @@
7
7
  そこで、下のようにソースコードを書いたのですが、Raspberry Piで動作させた時に、ポップアップ画面の表示位置が指定位置と異なることがあります。(ウィンドウの大きさは指定通りっぽい・・・)
8
8
 
9
9
  nfcを使わずにポップアップを実装した時はgeometryの指定位置にちゃんと表示されていたので、個人的にはnfcが原因だと思っています。
10
+ Windowsではnfcを使っても指定位置に表示されるっぽいので、この現象はRaspberry Piでのみ確認しています。
10
11
 
11
12
  実際のところどうなのでしょうか?
12
13
 

2

修正

2020/08/27 16:58

投稿

person
person

スコア224

title CHANGED
File without changes
body CHANGED
@@ -17,7 +17,6 @@
17
17
 
18
18
  ```Python
19
19
  # main.py
20
- # main.py
21
20
 
22
21
  import tkinter as tk
23
22
 
@@ -60,6 +59,7 @@
60
59
 
61
60
  def push_close():
62
61
  on_closing()
62
+ sub_win.destroy()
63
63
 
64
64
  def push_clear():
65
65
  e_id.delete(0, tk.END)
@@ -67,7 +67,8 @@
67
67
  def push_enter():
68
68
  input_widget.insert(tk.END, e_id.get())
69
69
  on_closing()
70
-
70
+ sub_win.destroy()
71
+
71
72
  def connected(tag):
72
73
  idm = binascii.hexlify(tag.idm) # <class 'byte'>
73
74
  idm = idm.decode() # <class 'str'>
@@ -76,24 +77,25 @@
76
77
  toplevel = tk.Toplevel()
77
78
  toplevel.geometry("100x100+100+100") # ラズパイだとgeometryの位置指定が効かない?
78
79
  # ---------- 今回の実装部分 ここまで----------
79
- return True # これがないとICを1回かざしたときに複数回認識してしまう(whileループ時)
80
+ return True # これがないとICを1回かざしたときに複数回認識してしまう
80
81
 
82
+ # カードをかざす度に認識させる
81
83
  def ic_read():
82
- global clf
84
+ global clf
83
- clf = nfc.ContactlessFrontend("usb") # 接続
85
+ clf = nfc.ContactlessFrontend('usb')
84
- try:
86
+ while clf.connect(rdwr={
85
- clf.connect( rdwr={"on-connect": connected} ) # 認識
87
+ 'on-connect': connected,
88
+ }):
86
- finally:
89
+ pass
87
- clf.close() # 切断
88
90
 
91
+
89
92
  def on_closing():
90
93
  global clf
91
- clf.close() # これがないと応答なしになってしまう
94
+ clf.close()
92
95
  thread_nfc.join()
93
- sub_win.destroy()
94
96
 
95
97
  sub_win = tk.Toplevel()
96
-
98
+
97
99
  thread_nfc = threading.Thread(target=ic_read)
98
100
  thread_nfc.start()
99
101
 
@@ -109,6 +111,5 @@
109
111
 
110
112
  b_etr = tk.Button(sub_win, text="ENTER", command=push_enter)
111
113
  b_etr.grid()
112
-
113
- sub_win.protocol("WM_DELETE_WINDOW", on_closing)
114
+
114
115
  ```

1

修正

2020/08/27 02:35

投稿

person
person

スコア224

title CHANGED
@@ -1,1 +1,1 @@
1
- Python3 Tkinter geometryをつかっても表示位置を指定できない
1
+ Python3 Tkinter geometryを使っても表示位置を指定できない
body CHANGED
File without changes