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

回答編集履歴

2

おかしな日本語の訂正

2020/10/06 10:14

投稿

nto
nto

スコア1438

answer CHANGED
@@ -34,7 +34,7 @@
34
34
  if widget == '.!entry':
35
35
  # 正規表現で入力された値が半角数字であるか判定
36
36
  if re.match(re.compile('[0-9]+'), newtext):
37
- # 入力されたが10文字以下の場合にのみTrueを返し、文字が入力出来る
37
+ # 現在までの入力された文字総数が10文字以下の場合にのみTrueを返し、文字が入力出来る
38
38
  if len(after) <= 10:
39
39
  return True
40
40
  return False

1

おかしな日本語の訂正

2020/10/06 10:14

投稿

nto
nto

スコア1438

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
- 予め変数に代入しておき、validatecommandを設定する際には変数を使用する事でコードも読みやすくなるでしょう。
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