V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
SeleiXi
V2EX  ›  Python

监听键盘输入时,如何判定以中文输入法输入的内容?

  •  
  •   SeleiXi · 2023-12-26 15:12:13 +08:00 · 1583 次点击
    这是一个创建于 367 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,本人在测试以 pygame 开发的游戏时,输入物件移动的 WASD 时会因为用户以中文输入法输入而无法进行移动。
    10 条回复    2023-12-26 16:45:15 +08:00
    b821025551b
        1
    b821025551b  
       2023-12-26 15:32:52 +08:00
    关键词“IME”,不熟悉 pygame ,搜了一下这个 https://www.cnblogs.com/Renqy/p/12841745.html 可以参考其中 IME 部分。
    AoEiuV020JP
        2
    AoEiuV020JP  
       2023-12-26 15:33:58 +08:00
    前阵子帮公司 qt 解决了这种问题,解决方法是,问 AI ,
    renmu
        3
    renmu  
       2023-12-26 15:36:49 +08:00 via Android
    让用户切输入法,打单机的应该都知道吧
    SeleiXi
        4
    SeleiXi  
    OP
       2023-12-26 15:48:38 +08:00
    @b821025551b 貌似不行,他根本沒有检测到有键盘输入这个事件
    SeleiXi
        5
    SeleiXi  
    OP
       2023-12-26 15:49:06 +08:00
    @AoEiuV020JP 换了几种方法问过了 awa ()
    SeleiXi
        6
    SeleiXi  
    OP
       2023-12-26 15:49:28 +08:00
    @renmu 但自己玩很多单机的时候都不用切呀
    ashuai
        7
    ashuai  
       2023-12-26 16:11:48 +08:00
    csl123
        8
    csl123  
       2023-12-26 16:15:16 +08:00
    搜索一下 IME 或者 composition event
    darcyC
        9
    darcyC  
       2023-12-26 16:42:56 +08:00
    可以的哦,看一下下面的事件:
    for event in pygame.event.get():
    if event.type == pygame.QUIT:
    running = False

    elif event.type == pygame.TEXTEDITING:
    print("TEXTEDITING", event) ## 看这个事件哦
    darcyC
        10
    darcyC  
       2023-12-26 16:45:15 +08:00
    如果要完全停止处理中文输入,使用 pygame.key.stop_text_input()
    默认是启用的,所以会被 TEXTEDITING 事件处理。
    pygame.key 这个 module 还可以设置候选框的位置
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2800 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:54 · PVG 10:54 · LAX 18:54 · JFK 21:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.