Je l'ai fait moi-même parce que les malédictions n'avaient pas de jugement sur la molette de la souris.
Avant de lire ceci, veuillez lire cet article.
Je ne peux pas avoir de jugement de roue
Bien que les malédictions fournissent un jugement de clic de souris, etc., il est insuffisant et le jugement de la roue est effectué. En particulier, il n'y a pas de jugement lors du défilement vers le bas.
Pour des commentaires sur la partie jugement, reportez-vous à l'article sur la contribution japonaise. Pseudo code. Je n'ai pas déclaré l'objet window correctement
import curses
window = curses.stdscr()
key = window.getch()
text_pool = [key]
if 0x00 <= key <= 0x7f:
pass
elif 0x80 <= key <= 0xbf:
print(key)
exit(1)
elif 0xc0 <= key <= 0xdf:
text_pool.append(self.window.getch())
a, b = text_pool
tmp = map(lambda x: bin(x)[2:], [0b00011111 & a, 0b00111111 & b])
tmp = ''.join(item.zfill(6) for item in tmp)
key = int(tmp,2)
elif 0xe0 <= key <= 0xef:
for _ in range(2):
text_pool.append(self.window.getch())
a, b, c = text_pool
tmp = map(lambda x: bin(x)[2:], [0b00001111 & a, 0b00111111 & b, 0b00111111 & c])
tmp = ''.join([item.zfill(6) for item in tmp])
key = int(tmp,2)
elif 0xf0 <= key <= 0xff:
for _ in range(3):
text_pool.append(self.window.getch())
a, b, c ,d = text_pool
tmp = map(lambda x: bin(x)[2:], [0b00000111 & a, 0b00111111 & b, 0b00111111 & c, 0b00111111 & d])
tmp = ''.join([item.zfill(6) for item in tmp])
key = int(tmp,2)
else:
pass
#Valeur actuelle
WHEEL_UP = 65536
WHEEL_DOWN = 2097152
if key == curses.KEY_MOUSE:
#L'entier saisi par la souris est stocké ici
wheel = curses.getmouse()[4]
if wheel == self.WHEEL_UP:
wheel_up_process()
elif wheel == self.WHEEL_DOWN:
wheel_down_process()
else:
print(chr(key)
Recommended Posts