回答編集履歴
3
ソースコードの変更
test
CHANGED
@@ -1,9 +1,8 @@
|
|
1
|
-
質問に記述した
|
2
|
-
|
1
|
+
2023/03/07 変更
|
2
|
+
|
3
|
-
|
3
|
+
下記で実現できました。
|
4
|
-
そのため一旦は解決としますが、問題あればご指摘ください。
|
5
|
-
コード
|
4
|
+
QRコードにカンマが含まれていれば、カンマ区切りの1番目と2番目をラベルに表示。そうでなければラベルに空白のみ表示。
|
6
|
-
あり
|
5
|
+
エントリのクリアはtk.StringVar().set(""), tk.Entry().delete()のどちらでも問題ありませんでした。
|
7
6
|
|
8
7
|
```Python
|
9
8
|
import tkinter as tk
|
@@ -12,22 +11,24 @@
|
|
12
11
|
def func():
|
13
12
|
qr = qr_sv.get()
|
14
13
|
|
15
|
-
if qr.count(",") =
|
14
|
+
if qr.count(",") >= 1:
|
16
15
|
values = qr.split(",")
|
17
16
|
id_label["text"] = values[0]
|
18
17
|
name_label["text"] = values[1]
|
18
|
+
else:
|
19
|
+
id_label["text"] = ""
|
20
|
+
name_label["text"] = ""
|
19
21
|
|
20
|
-
# クリア
|
21
|
-
# 注意点:qr_sv.set("") とすると、永久的にqr_changed()が呼ばれ続けるためdelete()を使ってクリア
|
22
|
-
qr_
|
22
|
+
qr_sv.set("")
|
23
|
-
|
23
|
+
|
24
24
|
|
25
25
|
def qr_changed(*args):
|
26
26
|
global after_id
|
27
27
|
# 入力中は呼ばずに、入力が完了したらfunc呼び出し
|
28
28
|
if after_id:
|
29
29
|
qr_entry.after_cancel(after_id)
|
30
|
+
if qr_sv.get():
|
30
|
-
after_id = qr_entry.after(1000, func) # 入力後約1000ミリ秒経過したら入力完了とみなす
|
31
|
+
after_id = qr_entry.after(1000, func) # 入力後約1000ミリ秒経過したら入力完了とみなす
|
31
32
|
|
32
33
|
root = tk.Tk()
|
33
34
|
|
2
追記
test
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
# 入力中は呼ばずに、入力が完了したらfunc呼び出し
|
28
28
|
if after_id:
|
29
29
|
qr_entry.after_cancel(after_id)
|
30
|
-
after_id = qr_entry.after(1000, func)
|
30
|
+
after_id = qr_entry.after(1000, func) # 入力後約1000ミリ秒経過したら入力完了とみなす
|
31
31
|
|
32
32
|
root = tk.Tk()
|
33
33
|
|
1
追記
test
CHANGED
@@ -18,6 +18,7 @@
|
|
18
18
|
name_label["text"] = values[1]
|
19
19
|
|
20
20
|
# クリア
|
21
|
+
# 注意点:qr_sv.set("") とすると、永久的にqr_changed()が呼ばれ続けるためdelete()を使ってクリア
|
21
22
|
qr_entry.delete(0, "end")
|
22
23
|
|
23
24
|
|