我一直在寻找不同的方式来Map退格键,但这不是我所追求的。我在一个程序中写一个python代码,基本上我想写一行代码,使程序认为有人刚刚在GUI中按了退格键(因为退格键删除了一些东西)我将如何在一个退格键中风代码?
6tr1vspr1#
退格键的字符是'\b',但听起来你想影响GUI。如果你的程序改变了GUI,那么简单地从活动输入字段中删除最后一个字符。
'\b'
7gs2gvoe2#
我得到了!
import sys print('\b ', end="", flush=True) sys.stdout.write('\010')
退格键!
xzlaal3s3#
foo = "abc" foo = foo + "\b" + "xyz" print foo >> abxyz print len(foo) >> 7 if key == '\b': delete_selected_points()
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))
mtb9vblg5#
更新,因为这仍然会在搜索中弹出。在Python3中,如果使用\<end\>参数,print()可以并且确实可以工作。这意味着不需要sys.stdout.write()和.flush()。例如print("\b"*len(time_str),end='')
\<end\>
print()
sys.stdout.write()
.flush()
print("\b"*len(time_str),end='')
5条答案
按热度按时间6tr1vspr1#
退格键的字符是
'\b'
,但听起来你想影响GUI。如果你的程序改变了GUI,那么简单地从活动输入字段中删除最后一个字符。
7gs2gvoe2#
我得到了!
退格键!
xzlaal3s3#
rsl1atfo4#
正如其他答案所说的,使用'\B'来退格键。在这种情况下,技巧是使用sys.stdout.write而不是print来不追加换行符。然后等待并打印适当数量的退格键字符。
mtb9vblg5#
更新,因为这仍然会在搜索中弹出。在Python3中,如果使用
\<end\>
参数,print()
可以并且确实可以工作。这意味着不需要sys.stdout.write()
和.flush()
。例如
print("\b"*len(time_str),end='')