相关疑难解决方法(0)

从终端检测python中键盘输入的最简单方法是什么?

I have a simple python script, that has some functions that run in a loop (I'm taking sensor readings).

while True:
    print "Doing a function"
Run Code Online (Sandbox Code Playgroud)

If the keyboard is pressed I'd like to print "key pressed".

What's the simplest way of doing this in Python? I've searched high and low. I've found out how to do it with pygame, but I'd rather do it without. If I do have to use pygame is it possible to not have a separate …

python keyboard terminal

49
推荐指数
7
解决办法
12万
查看次数

在Python中检测键输入

(2013年)我不知道为什么Python很奇怪,你不能通过谷歌搜索很容易找到这个,但它很简单.

如何检测"SPACE"或实际上是否有任何键?我怎样才能做到这一点:

print('You pressed %s' % key)
Run Code Online (Sandbox Code Playgroud)

这应该包含在python核心中,所以请不要链接与核心python无关的模块.

python keyboard tkinter input

16
推荐指数
1
解决办法
10万
查看次数

用于手机的远程蓝牙摄像头触发器

我想通过模拟将音量调高键发送到通过蓝牙连接的手机的 BLE 键盘来为我的手机构建相机触发器。我想要这个是因为我想触发本机相机应用程序,而不是嵌入式相机视图。

我不知道所使用的技术,但理想情况下,为了简单起见,我希望它成为我的 Macbook 中的命令行实用程序,使用 Go 或 Node.js 之类的东西。

我已经研究过Noble for Node.js,它似乎并不面向发射,并为 arduino找到了项目,并发现了几个 StackOverflow 问题提出了相同的问题,但还没有确定。

显然Node.js的Bleno项目可能更适合,但显然它已经过时了。

有人可以指出我正确的方向吗?

谢谢

编辑

我能够使用 Bleno 发出 0xEA 和 0xE9(显然是增大音量和减小音量),并且使用LightBlue 应用程序我能够检查接收这些消息的情况,但是,通过手机的蓝牙连接到 MacBook 不会增加/减少音量。

编辑 发现这个用 Swift 3 编写的过时项目以供参考

编辑显然pybluez项目看起来可能是一个不错的选择

python bluetooth hid node.js swift

10
推荐指数
1
解决办法
647
查看次数

使用asyncio收听按键

有人可以提供一个示例代码,这些代码示例使用asynio以非阻塞方式监听按键并在每次单击时将其放入控制台吗?

这不是一些图形工具包的问题

python python-3.x python-asyncio

7
推荐指数
3
解决办法
4743
查看次数

如何在 Linux 终端上进行按键检测,python 中的低级样式

我刚刚在 python 中实现了一个 Linux 命令外壳,仅使用os库的低级系统调用,诸如此类fork()

我想知道如何实现一个键侦听器,该侦听器将侦听键 (UP|DOWN) 以滚动浏览我的 shell 的历史记录。

我想在不使用任何花哨的库的情况下做到这一点,但我也希望这不是超级复杂的事情。到目前为止,我的代码只有大约 100 行代码,我不想为了获得一个简单的功能而创建一个怪物:D

我对这个问题的想法是,应该可以创建一个带有某种循环的子进程,它将侦听 up^[[A和 down ^[[B,按键,然后以某种方式将文本放入我的输入字段,就像一个普通终端。

到目前为止,我最感兴趣的是 key-listener 的可能性。但接下来我可能必须弄清楚如何将该文本输入到输入字段中。关于这一点,我想我可能必须使用提供的一些stdin功能sys

我只对让它在 Linux 上运行感兴趣,并希望继续使用低级系统调用,最好不是为我处理所有事情的 Python 库。这是一个学习练习。

python linux keypress low-level python-os

7
推荐指数
1
解决办法
866
查看次数

python中的控制台选择菜单

我有一个想法在 python 中创建一个控制台选择菜单,如下所示:

Choose an option:
> 1. Do something 1 <
  2. Do something 2
  3. Do something 3
  4. Do something 4
Run Code Online (Sandbox Code Playgroud)

如果我按向上箭头键,则没有任何反应。如果我按下一个,小于和大于符号会像这样上下移动:

Choose an option:
  1. Do something 1 
> 2. Do something 2 <
  3. Do something 3
  4. Do something 4
Run Code Online (Sandbox Code Playgroud)

但我不知道哪个 Python 3 模块可以帮助我捕捉按键而不是input(),并且不知道如何正确对齐它。

我的对齐解决方案是打印空格(也许?),当按键事件被捕获时,控制台将被清除并再次打印选择菜单而不是更改/修改字符串。

此外,选项将从列表中获取,这意味着此菜单是可扩展的

python algorithm

4
推荐指数
3
解决办法
1万
查看次数

detect key press in python, where each iteration can take more than a couple of seconds?

Edit: The below answer to use keyboard.on_press(callback, suppress=False) works fine in ubuntu without any issues. But in Redhat/Amazon linux, it fails to work.

I have used the code snippet from this thread

import keyboard  # using module keyboard
while True:  # making a loop
    try:  # used try so that if user pressed other than the given key error will not be shown
        if keyboard.is_pressed('q'):  # if key 'q' is pressed 
            print('You Pressed A Key!')
            break  # finishing the …
Run Code Online (Sandbox Code Playgroud)

python redhat keypress python-3.x amazon-linux

4
推荐指数
2
解决办法
3434
查看次数

带有 LIKE 搜索的 Python Tkinter 自动完成组合框?

我正在尝试使用预定义的值填充 Tkinter 组合框以供选择。它正在填充,我可以输入并获得建议。但是,为了做到这一点,我必须绝对知道前几个字符。如果我知道字符串中间或末尾的一些文本,则它没有用,因为组合框只执行'LIKE%' 搜索而不是 '%LIKE%' 搜索

预期输出(输入“Ceramic”一词会获取包含该字符串的所有名称。注意:这不是 Tkinter 屏幕截图):

在此处输入图片说明

这是我迄今为止对代码的改编,如果有人可以建议如何修改AutocompleteCombobox类以进行 LIKE 搜索,那就太好了。

作为示例,以下工作代码具有值 "Cranberry" 和 "Strawberry" ,我的要求是键入 "berry" 并获得两种水果的建议。

import Tkinter
import ttk
import sqlite3


class AutocompleteCombobox(ttk.Combobox):

        def set_completion_list(self, completion_list):
                """Use our completion list as our drop down selection menu, arrows move through menu."""
                self._completion_list = sorted(completion_list, key=str.lower) # Work with a sorted list
                self._hits = []
                self._hit_index = 0
                self.position = 0
                self.bind('<KeyRelease>', self.handle_keyrelease)
                self['values'] = self._completion_list  # Setup our popup menu

        def …
Run Code Online (Sandbox Code Playgroud)

sqlite combobox tk-toolkit tkinter python-2.7

3
推荐指数
1
解决办法
1万
查看次数