我一直在寻找以不同方式映射退格键的方法,但这不是我所追求的。
我在一个编写python代码的程序中,基本上我想编写一行代码,使程序认为有人刚刚在GUI中按下了退格键(因为退格键删除了一些东西)
我将如何在退格键中进行编码?
退格的字符是'\b'
,但听起来你想影响 GUI。
如果您的程序更改了 GUI,则只需从活动输入字段中删除最后一个字符。
我明白了!
print('\b ', end="", flush=True)
sys.stdout.write('\010')
它退格!
foo = "abc"
foo = foo + "\b" + "xyz"
print foo
>> abxyz
print len(foo)
>> 7
if key == '\b': delete_selected_points()
正如其他答案所说,使用 '\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))
更新,因为这仍然会在搜索中弹出。print()
如果您使用\<end\>
参数,在 Python3中可以并且确实有效。意义sys.stdout.write()
和.flush()
不需要。
例如。
print("\b"*len(time_str),end='')