質問編集履歴
2
タイトルを伝わりやすく修正しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
tkinterでボタンウィジェットを用いずに、
|
1
|
+
tkinterでボタンウィジェットを用いずに、repeatdelayやrepeatintervalと同様の処理を行いたい。
|
test
CHANGED
File without changes
|
1
ソースコードで使用する画像を作成するための、コードを追記いたしました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ボタンウィジェットを用いずに、
|
1
|
+
tkinterでボタンウィジェットを用いずに、キー長押しの処理を行いたい。
|
test
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
「クリックごとに回転させる」ことは出来ましたが、「マウスの長押し」に対応させられていません。
|
4
4
|
|
5
5
|
### 実現したいこと
|
6
|
-
ボタンウィジェットを用いずに、ボタンウィジェットのrepeatdelay、repeatintervalのような「ボタン長押しで、何度もボタンをクリックしたことにする」処理を実現したいです。
|
6
|
+
**ボタンウィジェットを用いずに、ボタンウィジェットのrepeatdelay、repeatintervalのような「ボタン長押しで、何度もボタンをクリックしたことにする」処理を実現したいです。**
|
7
7
|
|
8
8
|
"press_L"および"press_R"のイベントの中に、そのようなコードを組み込めればと考えています。
|
9
9
|
|
@@ -100,6 +100,78 @@
|
|
100
100
|
root.mainloop()
|
101
101
|
```
|
102
102
|
|
103
|
+
### 上記の処理に使用した画像を作成するコード
|
104
|
+
```Python
|
105
|
+
#---SVV測定に使用する画像の作成---
|
106
|
+
|
107
|
+
from PIL import Image, ImageDraw
|
108
|
+
|
109
|
+
#背景色が黒色のキャンパスを作成。
|
110
|
+
im = Image.new('RGB', (500, 500), (0, 0, 0))
|
111
|
+
draw = ImageDraw.Draw(im)
|
112
|
+
|
113
|
+
|
114
|
+
#中央に線を描画
|
115
|
+
draw.line((50, 250, 450, 250), fill=(255, 255, 255), width=10)
|
116
|
+
|
117
|
+
|
118
|
+
#同じサイズの画像を作成
|
119
|
+
im_clear = Image.new("RGBA", im.size, (0, 0, 0, 0))
|
120
|
+
width = im.size[0]
|
121
|
+
height = im.size[1]
|
122
|
+
|
123
|
+
|
124
|
+
#色ごとに処理
|
125
|
+
for x in range(width):
|
126
|
+
for y in range(height):
|
127
|
+
pixel = im.getpixel( (x, y) )
|
128
|
+
|
129
|
+
# 黒なら処理しない
|
130
|
+
if pixel[0] == 0 and pixel[1] == 0 and pixel[2] == 0:
|
131
|
+
continue
|
132
|
+
|
133
|
+
# 黒以外なら、用意した画像にピクセルを書き込み
|
134
|
+
im_clear.putpixel( (x, y), pixel )
|
135
|
+
|
136
|
+
|
137
|
+
#SVVで表示させるバーをpng形式で保存
|
138
|
+
im_clear.save("D:\EXPERIMENT\programming\Python\SVV\svv_bar.png", quality=100)
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
#---透明なpng画像の作成---
|
143
|
+
|
144
|
+
#画像サイズの指定
|
145
|
+
WIDTH = 1500
|
146
|
+
HEIGHT = 1000
|
147
|
+
|
148
|
+
|
149
|
+
#新しい画像を作成
|
150
|
+
im_snow = Image.new("RGBA", (WIDTH, HEIGHT), (0, 0, 0, 0))
|
151
|
+
|
152
|
+
|
153
|
+
#新しい画像をもう一つ作成
|
154
|
+
im_snow2 = Image.new("RGBA", (WIDTH, HEIGHT), (0, 0, 0, 0))
|
155
|
+
|
156
|
+
|
157
|
+
#色ごとに処理
|
158
|
+
for x in range(width):
|
159
|
+
for y in range(height):
|
160
|
+
pixel = im_snow2.getpixel( (x, y) )
|
161
|
+
|
162
|
+
# 黒なら処理しない
|
163
|
+
if pixel[0] == 0 and pixel[1] == 0 and pixel[2] == 0:
|
164
|
+
continue
|
165
|
+
|
166
|
+
# 黒以外なら、用意した画像にピクセルを書き込み
|
167
|
+
im_snow.putpixel( (x, y), pixel )
|
168
|
+
|
169
|
+
|
170
|
+
#透明な画像をpng形式で保存
|
171
|
+
im_snow.save("D:\EXPERIMENT\programming\Python\SVV\svv_snow.png", quality=100)
|
172
|
+
|
173
|
+
```
|
174
|
+
|
103
175
|
### 試したこと
|
104
176
|
|
105
177
|
もともとボタンウィジェットを用いた方法で進めていましたが、ボタンウィジェットを透明にする方法が無さそうでしたので、現在の「透明な画像を重ねる」方法をとっています。
|