You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
"""
|
|
Source: https://stackoverflow.com/a/10455937/2692667
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
|
|
if os.name == "nt":
|
|
import ctypes
|
|
|
|
class _CursorInfo(ctypes.Structure):
|
|
_fields_ = [("size", ctypes.c_int), ("visible", ctypes.c_byte)]
|
|
|
|
|
|
def hide(stream=sys.stdout):
|
|
"""Hide cursor.
|
|
Parameters
|
|
----------
|
|
stream: sys.stdout, Optional
|
|
Defines stream to write output to.
|
|
"""
|
|
if os.name == "nt":
|
|
ci = _CursorInfo()
|
|
handle = ctypes.windll.kernel32.GetStdHandle(-11)
|
|
ctypes.windll.kernel32.GetConsoleCursorInfo(handle, ctypes.byref(ci))
|
|
ci.visible = False
|
|
ctypes.windll.kernel32.SetConsoleCursorInfo(handle, ctypes.byref(ci))
|
|
elif os.name == "posix":
|
|
stream.write("\033[?25l")
|
|
stream.flush()
|
|
|
|
|
|
def show(stream=sys.stdout):
|
|
"""Show cursor.
|
|
Parameters
|
|
----------
|
|
stream: sys.stdout, Optional
|
|
Defines stream to write output to.
|
|
"""
|
|
if os.name == "nt":
|
|
ci = _CursorInfo()
|
|
handle = ctypes.windll.kernel32.GetStdHandle(-11)
|
|
ctypes.windll.kernel32.GetConsoleCursorInfo(handle, ctypes.byref(ci))
|
|
ci.visible = True
|
|
ctypes.windll.kernel32.SetConsoleCursorInfo(handle, ctypes.byref(ci))
|
|
elif os.name == "posix":
|
|
stream.write("\033[?25h")
|
|
stream.flush()
|