使用prompt-toolkit无法修改用户输入文本颜色的问题求助
解决prompt-toolkit用户输入文本蓝色不生效的问题
问题根源是你指定的样式键不符合prompt-toolkit的默认规则,用户输入文本对应的默认样式类并非input,而是prompt-text。以下提供两种可行的解决方式:
方式一:修改样式字典的对应键
直接调整样式字典中的键名,将input替换为prompt-text即可生效:
from prompt_toolkit import styles, PromptSession prompt_style = styles.Style.from_dict({ 'prompt': 'fg:red', # 控制提示文本>>>>的颜色 'prompt-text': 'fg:blue' # 控制用户输入文本的颜色 }) session = PromptSession() command = session.prompt(">>>>", style=prompt_style)
方式二:自定义格式化提示(更灵活的方案)
如果需要更精细的样式控制,可通过FormattedText自定义提示内容,并明确指定输入文本的样式类:
from prompt_toolkit import PromptSession from prompt_toolkit.styles import Style from prompt_toolkit.formatted_text import FormattedText # 定义样式映射 style = Style.from_dict({ 'prompt-symbol': 'fg:red', 'user-input': 'fg:blue', }) # 生成带样式的提示文本 def custom_prompt(): return FormattedText([ ('class:prompt-symbol', '>>>>'), ('', ' '), # 提示与输入之间添加空格分隔 ]) session = PromptSession() # 指定输入文本使用的样式类 command = session.prompt(custom_prompt, style=style, input_style='class:user-input')
修改后,提示文本>>>>会显示为红色,用户输入的内容将变为蓝色。
内容的提问来源于stack exchange,提问作者Risen Star
相关产品推荐
相关产品推荐

