Python GUI 可访问性应用程序
我正在开发一个基于Python的应用程序,专门为有运动障碍的人士设计。
我在这里读了一些关于Python常用图形界面工具包的一般特性,但希望你们能根据我的需求给我一些建议。
1) 基本上,使用这个程序的人会通过点击来与它交流,一次点击代表“是”,而在必要时两次点击(不是像双击那样快)代表“不是”。鼠标指针在屏幕上的位置并不重要,重要的是点击的次数。
2) 在主窗口中,程序会显示6个不同的元素,并且需要循环播放每个元素的预录音,等待用户选择(通过一次点击)。例如: 播放“元素一”的声音……等待n秒以便点击 播放“元素二”的声音……等待n秒以便点击 依此类推。
如果没有选择任何元素,程序就会重新从第一个元素开始。
3) 一旦用户选择了其中一个选项,就会展示一组新的元素,然后重复第2步的过程,但这次当做出选择时,该元素会被添加到一个“最终列表”中。
例如:主要元素组是1) 动物,2) 国家,3) 城市,……而次要元素是1.1) 狗,1.2) 猫,……
最终列表可能是:狗,纽约,墨西哥,阿根廷,猫,蛇,埃及,卡拉卡斯,……
4) 主要元素组之一将是“控制元素”,这样用户可以告诉程序何时停止列表,进行暂停等。
5) 程序必须在创建列表时显示当前列表。未来还会连接一个语音合成器,并添加一个预测工具。文本和图片必须要大。非常重要的是:这个应用程序必须能够跨平台运行(基本上是Linux和Windows)。至少要生成一个Windows可执行文件。
就这样。如你所见,这并不是一个复杂的问题,但我非常感谢你们的回答。
1 个回答
看看Kivy吧。你可以非常快速地制作应用的原型。它是一个自然用户界面框架,所以有些概念是可以灵活调整的,比如双击:它叫做双击(doubletap),并作为输入后处理器来实现。举个例子,你可以通过以下方式改变双击之间的时间间隔(甚至是两次点击之间的距离):
from kivy.config import Config
Config.set('kivy', 'double_tap_timeout', '500') #< 500 ms between 2 touch tap
然后,在你的某个小部件中检测这个动作:
class MyCustomWidget(Widget):
def on_touch_down(self, touch):
# is the touch is touching on me ?
if not self.collide_point(*touch.pos):
return False
if touch.is_double_tap:
print 'its a double tap!'
else:
print 'its a tap'
return super(MyCustomWidget, self).on_touch_down(touch)