回答編集履歴
2
おかしな日本語の訂正
answer
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
if widget == '.!entry':
|
35
35
|
# 正規表現で入力された値が半角数字であるか判定
|
36
36
|
if re.match(re.compile('[0-9]+'), newtext):
|
37
|
-
# 入力された
|
37
|
+
# 現在までの入力された文字総数が10文字以下の場合にのみTrueを返し、文字が入力出来る
|
38
38
|
if len(after) <= 10:
|
39
39
|
return True
|
40
40
|
return False
|
1
おかしな日本語の訂正
answer
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
entryウィジェットのvalidateオプションを使用して入力の制限が可能です。
|
1
|
+
entryウィジェットのvalidateオプションを使用して入力の値を検証し、値によって制限をする事が可能です。
|
2
|
-
validateに対象の動作を、validatecommand
|
2
|
+
validateには対象の動作を、validatecommandにはイベントを設定します。
|
3
|
-
validatecommandは`(root.register(イベント名), '%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W')`と、
|
3
|
+
validatecommandでは`(root.register(イベント名), '%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W')`と、
|
4
|
-
検証したい必要なパラメータを指定し、イベントに渡す事ができます。
|
4
|
+
検証したい必要なパラメータを指定して、値をイベントに渡す事ができます。
|
5
|
+
複数設定する場合にはコードが長くなりがちなので、その場合には予め変数に代入しておき
|
5
|
-
|
6
|
+
validatecommandを設定する際には変数を使用する事でコードも読みやすくなるでしょう。
|
6
7
|
|
7
8
|
|パラメータ|説明|
|
8
9
|
|:--|:--:|
|
@@ -18,7 +19,7 @@
|
|
18
19
|
def create_widgets(self):
|
19
20
|
・
|
20
21
|
・
|
21
|
-
# varidatecommandの
|
22
|
+
# varidatecommandの内容を予め変数に代入しておく
|
22
23
|
vcmd = (self.master.register(self.validate_text), '%P','%S','%W')
|
23
24
|
|
24
25
|
self.master.txt_kanja_id = tkinter.Entry(self.master, width=30, validate='key', validatecommand=vcmd) # ID
|