9

我一直在寻找以不同方式映射退格键的方法,但这不是我所追求的。

我在一个编写python代码的程序中,基本上我想编写一行代码,使程序认为有人刚刚在GUI中按下了退格键(因为退格键删除了一些东西)

我将如何在退格键中进行编码?

4

5 回答 5

8

退格的字符是'\b',但听起来你想影响 GUI。

如果您的程序更改了 GUI,则只需从活动输入字段中删除最后一个字符。

于 2013-08-19T18:23:36.077 回答
7

我明白了!

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

它退格!

于 2016-02-22T22:55:11.903 回答
4
foo = "abc"
foo = foo + "\b" + "xyz"
print foo
>> abxyz
print len(foo)
>> 7

if key == '\b': delete_selected_points()
于 2013-08-19T18:23:01.263 回答
4

正如其他答案所说,使用 '\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))
于 2017-01-25T22:43:05.037 回答
0

更新,因为这仍然会在搜索中弹出。print()如果您使用\<end\>参数,在 Python3中可以并且确实有效。意义sys.stdout.write().flush()不需要。

例如。 print("\b"*len(time_str),end='')

于 2021-05-11T19:13:18.263 回答