【问题标题】:Python code to cause a backspace keystroke?Python代码导致退格键击?
【发布时间】:2013-08-19 18:18:50
【问题描述】:

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

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

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

【问题讨论】:

  • 击键发生在什么上下文中? Tkinter 文本小部件?其他一些 GUI 框架?
  • 也许我应该多指定一个。我实际上并没有使用 \b 在这里删除一个字符。基本上在这个程序中将其视为图像跟踪,并在图像的高对比度点上放置一个标记。当您调整错误阈值时,它会突出显示具有高错误的点。在 GUI 查看器上按退格键会删除选定的点。这就是我想要的。
  • 好的,那么你需要一个事件监听器。例如,在 Tkinter 中,您可以将函数绑定到 the <BackSpace> event。除非您告诉我们您在哪个框架中编写了 GUI,否则很难再为您提供帮助。

标签: python keystroke backspace


【解决方案1】:

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

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

【讨论】:

  • 也许我应该多指定一个。我实际上并没有使用 \b 在这里删除一个字符。基本上在这个程序中将其视为图像跟踪,并在图像的高对比度点上放置一个标记。当您调整错误阈值时,它会突出显示具有高错误的点。在 GUI 查看器上按退格键会删除选定的点。这就是我想要的。
  • delete_points() 是什么?没有用于删除我可以调用的点的实际脚本命令。我需要自动击键。我并不是说我想让退格键有动作。我想这样做,以便我的脚本循环通过它来分析,然后删除点,移动到下一帧,分析,删除等 - 但同样 - 没有脚本可以让我访问以导致 delete_points() 动作。我想要的是这样的: blahblah['addAnalysysKey'].execute() pythonCommandToCauseKeysroke['\b'].stroke() etccc
  • 所以你想在程序的击键中注入一个退格键?这取决于您的程序和环境。如果您谈论的是 Windows 应用程序,则需要询问 Windows GUI 人员。
【解决方案2】:

我明白了!

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

退格!

【讨论】:

  • 这对我有用!!示例:尝试删除最后的逗号并放置一个句点。 ======= def fibonacci(f): x = z = 0 y = 1 while z
【解决方案3】:
foo = "abc"
foo = foo + "\b" + "xyz"
print foo
>> abxyz
print len(foo)
>> 7

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

【讨论】:

  • 也许我应该多指定一个。我实际上并没有使用 \b 在这里删除一个字符。基本上在这个程序中将其视为图像跟踪,并在图像的高对比度点上放置一个标记。当您调整错误阈值时,它会突出显示具有高错误的点。在 GUI 查看器上按退格键会删除选定的点。这就是我想要的。
  • 布伦特说了什么,除非我遗漏了什么。
【解决方案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))

【讨论】:

    【解决方案5】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 2013-08-22
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多