首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyQT5不称keyPressedEvent为俄罗斯版式

PyQT5不称keyPressedEvent为俄罗斯版式
EN

Stack Overflow用户
提问于 2017-10-22 07:29:38
回答 1查看 41关注 0票数 1

因此,我正在编写一个简单的CHIP8模拟器。它显然需要一些关键的投入。问题是,在启动应用程序系统时,语言会自动从英语变成俄语,并且应用程序停止用字母来响应键(数字工作正常)。

我怎样才能改变这种行为?也许,在下面的字典中添加更多的键会有帮助,但是我可以在PyQT中找到关于俄语键的任何信息。或者有什么功能,比如sys.change_system_language

下面是一个代码,它负责键映射

代码语言:javascript
复制
KEYBOARD = {
    Qt.Key_1: 1,
    Qt.Key_2: 2,
    Qt.Key_3: 3,
    Qt.Key_4: 4,
    Qt.Key_5: 5,
    Qt.Key_6: 6,
    Qt.Key_7: 7,
    Qt.Key_8: 8,
    Qt.Key_9: 9,
    Qt.Key_0: 0,
    Qt.Key_A: 10,
    Qt.Key_B: 11,
    Qt.Key_C: 12,
    Qt.Key_D: 13,
    Qt.Key_E: 14,
    Qt.Key_F: 15,
}

这是主要窗口:

代码语言:javascript
复制
class GameWindow(QMainWindow):
    def __init__(self, rom, parent=None):
        super().__init__(parent)    
        self.game = CHIP8()
        # more code here    

    def keyPressEvent(self, e):
        if e.key() in KEYBOARD:
            self.game.key_pressed = KEYBOARD[e.key()]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-21 14:28:37

问题是,当字母"Q“和"Й”在同一个按钮上时,它们的数值是不同的。因此,要使一切正常工作,我需要添加16个新的键值对(通过为每个按钮调用print(e.key())来获取所有俄罗斯按钮的值)。但我刚把键盘默认语言换成了英语:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46871570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档