22-09-2018, 05:44 PM
Me explico, tengo un función llamada textcolor(), que le da un color a la consola, en este caso rojo, pero luego quiero que si una variable, que en este caso es vResetcolor y es True, la función textcolor al darle color a un texto en pantalla, ya no le dará color al siguiente print
, osea el siguiente print se imprimirá sin color.
Aca les dejo un ejemplo gráfico de lo que quiero:
Para quitar el color se debió usar una función que en este caso es resetvideo(), pero como decía antes, quiero que se resetee automáticamente el color si la variable ya antes mencionada es True.
Les dejo el código:
y acá para Windows:
Saludos
, osea el siguiente print se imprimirá sin color.
Aca les dejo un ejemplo gráfico de lo que quiero:
Para quitar el color se debió usar una función que en este caso es resetvideo(), pero como decía antes, quiero que se resetee automáticamente el color si la variable ya antes mencionada es True.
Les dejo el código:
Código:
[code]
vResetcolor = True
Black = ";30"
Gray = ";1;30"
Blue = ";34"
Cyan = ";36"
Green = ";32"
Magenta = ";35"
Red = ";31"
Yellow = ";33"
White = ";37"
abgcolor = Black
acolor = White
def resetvideo():
print("x1b[;0m")
def textcolor(color):
bgcol = abgcolor
print("x1b[%s%sm" % (color, bgcol))
global acolor
acolor = color
return ""
[/code]
Código:
[code]
import ctypes
vResetcolor = True
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE = -11
STD_ERROR_HANDLE = -12
LF_FACESIZE = 32
std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
Black = 0
Blue = 1
Green = 2
Red = 4
Yellow = 6
Cyan = 3
Magenta = 5
White = 7
Gray = 8
abgcolor = Black
acolor = White
def resetvideo():
ctypes.windll.kernel32.SetConsoleTextAttribute(std_out_handle, 0|7)
def textcolor(color):
bgcol = abgcolor
ctypes.windll.kernel32.SetConsoleTextAttribute(std_out_handle, color | bgcol)
global acolor
acolor = color
return ""
[/code]
Saludos