Qt 如何将控件映射到物理键盘位置

Qt 如何将控件映射到物理键盘位置,qt,boost,keyboard,sfml,Qt,Boost,Keyboard,Sfml,我一直想创建一个游戏引擎,但我想解决一些问题,比如如何进行控制。是否可以将控件映射到键盘上的物理位置,而不是单个键本身 我之所以这么做,是因为我认为,对于那些不使用qwerty的人来说,简单地配置W代表up,S代表down这样的控件是一件麻烦事,他们需要重新配置到游戏创建者想要的位置,其中包括像我这样的Dvorak用户或任何决定更改系统默认值的人 我可能会用C++,用Boost、SfML和Qt来处理。如果 ,最好的方法是简单地在.ini文件或文本文件中拥有控件,然后用户可以从那里配置它。或者,游

我一直想创建一个游戏引擎,但我想解决一些问题,比如如何进行控制。是否可以将控件映射到键盘上的物理位置,而不是单个键本身

我之所以这么做,是因为我认为,对于那些不使用qwerty的人来说,简单地配置W代表up,S代表down这样的控件是一件麻烦事,他们需要重新配置到游戏创建者想要的位置,其中包括像我这样的Dvorak用户或任何决定更改系统默认值的人


我可能会用C++,用Boost、SfML和Qt来处理。如果

,最好的方法是简单地在.ini文件或文本文件中拥有控件,然后用户可以从那里配置它。或者,游戏中的一个菜单,您可以从中选择一个键。i、 e.按下up等键。就物理布局而言,实际上没有任何标准


无论如何,即使是那些使用qwerty键盘的人也希望定制他们的按键,例如roguelike键。

即使WASD键映射到Dvorak键盘上的不同字母,如果您使用按键位置,我仍然需要自己重新配置,因为我更喜欢使用ESDF,因为我是一名触摸式打字员,这可以让我的手指舒适地放在第一排。我不认为我会喜欢从顶部第三排的左边选择第四个键,而不仅仅是E键。此外,所有键盘的物理布局绝不是通用的:@Arnold Spence我想你没有领会我的意思。我想在键和底层硬件之间创建一个抽象,使配置本身不受不同布局的影响。绝不应影响易用性。因此,当您将E配置为在游戏中执行某些操作时,实际上您正在设置顶部第三行左侧的第四个键。所以在QWERTY中E是位置1,但如果你要换成德沃夏克的话。是位置1。这也提出了一个观点,按键可能与触摸打字员无关。我知道键盘布局不是通用的——我想解决的一个重叠问题是,能否将这些差异提取出来。我还想指出,我并没有试图限制自定义,因为我也喜欢更改默认设置,即使在使用QWERTY时也是如此。在这种情况下,您不能为每种键盘指定不同的初始键设置吗?我不明白为什么不可以。我想像任何传统游戏一样设置初始默认值,但我希望找到一种方法,使按键能够自动重新配置自己,而无需基于布局和不同的硬件设置进行用户交互。我只是想要一个更一致的设计,而不是一个特别的解决方案,如果它意味着现在和将来的用户更方便的话。