Python代码导致退格键?

fjnneemd  于 2023-04-19  发布在  Python
关注(0)|答案(5)|浏览(141)

我一直在寻找不同的方式来Map退格键,但这不是我所追求的。
我在一个程序中写一个python代码,基本上我想写一行代码,使程序认为有人刚刚在GUI中按了退格键(因为退格键删除了一些东西)
我将如何在一个退格键中风代码?

6tr1vspr

6tr1vspr1#

退格键的字符是'\b',但听起来你想影响GUI。
如果你的程序改变了GUI,那么简单地从活动输入字段中删除最后一个字符。

7gs2gvoe

7gs2gvoe2#

我得到了!

import sys

print('\b ', end="", flush=True) 
sys.stdout.write('\010')

退格键!

xzlaal3s

xzlaal3s3#

foo = "abc"
foo = foo + "\b" + "xyz"
print foo
>> abxyz
print len(foo)
>> 7

if key == '\b': delete_selected_points()
rsl1atfo

rsl1atfo4#

正如其他答案所说的,使用'\B'来退格键。在这种情况下,技巧是使用sys.stdout.write而不是print来不追加换行符。然后等待并打印适当数量的退格键字符。

import time
import sys

print("Good morning!")
while True:
    time_fmt = "It's %I:%M:%S %p on %A, %b %d, %Y"
    time_str = time.strftime(time_fmt)
    sys.stdout.write(time_str)
    sys.stdout.flush()
    time.sleep(1)
    sys.stdout.write("\b"*len(time_str))
mtb9vblg

mtb9vblg5#

更新,因为这仍然会在搜索中弹出。在Python3中,如果使用\<end\>参数,print()可以并且确实可以工作。这意味着不需要sys.stdout.write().flush()
例如print("\b"*len(time_str),end='')

相关问题