Python代码导致退格键击?

时间:2013-08-19 18:18:51

标签: python keystroke backspace

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

我正在编写python代码的程序中,基本上我想写一行代码,导致程序认为有人只是点击了GUI中的Backspace键(因为退格键删除了某些东西)< / p>

我如何在退格键击中编码?

5 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:4)

我明白了!

stats = Session.query(PlayerMatchStats).join(Match, Match.id == PlayerMatchStats.match_id 
                  ).filter_by(player=self).order_by(Match.date.desc()).limit(5).all()

它退格!

答案 3 :(得分:4)

正如其他答案所说,使用&#39; \ b&#39;退格。在你的情况下的技巧是使用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))

答案 4 :(得分:0)

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

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