你会如何提示用户输入一些信息但是在N秒后超时?
谷歌在http://mail.python.org/pipermail/python-list/2006-January/533215.html上指向了一个关于它的邮件线程,但似乎没有用.超时发生的语句,无论是sys.input.readline还是timer.sleep(),我总是得到:
<type'exception.TypeError'>:[raw_]输入最多需要1个参数,得2
以某种方式,除了没有抓住.
我想在整个我的WPF应用程序中将Enter键解释为Tab键,也就是说,当我的应用程序中的任何地方用户按Enter时我想要聚焦下一个可聚焦控件,除非按钮被聚焦.在应用程序生命周期中有没有办法做到这一点?谁能举个例子?
非常感谢!
我有一个古怪的小应用程序弹出一个用Delphi编写的屏幕数字键盘/计算器.我想这样做,如果按下"输入"(在数字键盘上),你按'=',如果你按'返回'(在主键盘上),你就按'确定'.
有一个OK按钮是表单的默认人物,它响应命中输入或返回.还有一个onkeydown事件处理程序,可能会捕获Enter并返回为vk_return.但它的职责被默认的"确定"按钮篡夺.
如果我可以知道return和enter之间的区别,那么我可以在OK按钮上删除我的默认属性,只需按下表单按键功能上的OK按钮的click事件处理程序,但是它们都是VK_RETURN.
我正在为我的Clojure程序编写一个函数,用于从键盘读取用户输入.如果用户输入无效输入,则会警告用户,然后再次提示.在像Python这样的语言中使用过程样式时,我会这样做:
while 1:
value = input("What is your decision?")
if validated(value):
break
else:
print "That is not valid."
Run Code Online (Sandbox Code Playgroud)
我能在Clojure中提出的最好的是:
(loop [value (do
(println "What is your decision?")
(read-line))]
(if (validated value)
value
(recur (do
(println "That is not valid.")
(println "What is your decision?")
(read-line)))))
Run Code Online (Sandbox Code Playgroud)
这是有效的,但它是多余的,似乎很冗长.是否有更多的Lispy/Clojurey方法来做到这一点?
我正在Youtube上关注如何使用bootstrap开发仪表板的一系列视频.该系列中的开发人员使用Sublime Text编辑器.
我注意到有时他会点击多个地方(一个接一个)然后开始打字,而且所有这些地方都会显示他正在输入的内容.我认为这节省了很多时间.
在VS和SSMS中,可以按ALT然后选择将被修改的矩形.但是这个是不同的,因为你可以随机选择几个地方,然后开始输入.
我们在Visual Studio 2017中具有相同的功能吗?
我对与我的多客户聊天服务器程序相关的扭曲python有疑问.
也就是说,当我们从键盘使用输入stdio.StandardIO
时,当我们运行反应器时它存储在哪里?请有人给我答案,请..
我想检测何时在WPF应用程序中按下Ctrl-C这样的组合.我在网上看到的内容是在KeyDown(或KeyUp)事件中使用以下内容:
if ((Keyboard.Modifiers == ModifierKeys.Control) && (e.Key == Key.S))
{
MessageBox.Show("Save!");
}
Run Code Online (Sandbox Code Playgroud)
我只是想了解它是如何工作的.据我了解,e.Key包含触发事件中被按下键和Keyboard.Modifiers包含有关控制键的状态信息现在.是否可以安全地假设在KeyDown事件处理时Control键仍会关闭?
例如,我重新启动Firefox,它会加载一堆标签,同时在我的应用程序中按Ctrl-S.到达KeyDown有一个延迟,应用程序认为只是按下了S.
谢谢
是否有一些Linux模拟的Windows函数GetAsyncKeyState()?或者可能存在一些返回的异步函数 - 键盘缓冲区是否为空?
谢谢.
我写了一些代码来从键盘获取输入,并检查是否有效:
import sys
from select import select
timeout = 10
while is_alive(): # is_alive is a method to check some stuffs, might take 5 secs
rlist, _, _ = select([sys.stdin], [], [], timeout)
if rlist:
s = sys.stdin.readline()
print repr(s)
handle(s) # handle is a method to handle and react according to input s
Run Code Online (Sandbox Code Playgroud)
我发现当键盘输入在等待之外select()
结束时(通常在5秒内结束is_alive()
),if rlist:
将会出现错误.
我能理解为什么,但我不知道如何解决它.
还有另一个与上述情况有关的问题,readline()
当某些输入位于不同的select()
等待时,有时会返回我输入的最后一行.
这意味着,如果我输入'abc \n'并且不幸的是'\n'位于wating之外select()
(这意味着,当我按Enter时,程序正在执行其他部分,例如is_alive()
),然后如果我输入 …