【问题标题】:Changing a variable's value with Hotkey使用热键更改变量的值
【发布时间】:2021-11-09 21:45:21
【问题描述】:

在这里,我有一部分代码可以检测"Esc" 是否被按下。然后将 running 的值更改为 False 并终止 while 循环

def exit():
    xx = False
    return xx
        
while running:
    add_hotkey("esc",lambda:exit())
    if exit() == False:
        running = False

但它不起作用。在if 语句中,exit() 开始更改运行的值并终止while 循环而不按任何按钮。任何替代代码?

【问题讨论】:

  • 调用exit() 不会改变任何东西的价值。它只是返回 False。您是否打算在exit 中将running 设置为False?请注意,您需要global running 来执行此操作。

标签: python hotkeys


【解决方案1】:

如果您只想在按下转义键时退出程序,请提供sys.exit 作为按下esc 时要调用的回调。

import sys

while running:
    add_hotkey("esc", sys.exit)

或者如果你需要做一些清理代码,把它全部放在一个方法中:

def exit():
  print("Exiting...")
  sys.exit()

while running:
    add_hotkey("esc", exit)

【讨论】:

    【解决方案2】:

    代码不起作用的原因running 一定是事先含糊不清的。 while之前应该设置runnning = true

    【讨论】:

      猜你喜欢
      • 2012-04-21
      • 2021-12-21
      • 1970-01-01
      • 2014-02-17
      • 2017-08-28
      • 2021-09-28
      • 2012-06-24
      • 2015-12-17
      • 2016-02-24
      相关资源
      最近更新 更多