0ices
2021-06-30 11:05
采纳率: 86.7%
浏览 40

Qt QGraphicsView如何使用中文输入法?

我在QScrollArea中可以通过设置setAttribute(Qt::WA_InputMethodEnabled);来使用中文输入法,但在QGraphicsView却无法做到,直接响应了keyPressEvent,不知道是什么原因 我测试了testAttribute(Qt::WA_InputMethodEnabled);结果在scene.addItem(item);这句前后输出转变为false,这是为什么呢

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 0ices 2021-06-30 13:03
    已采纳

    该问题已解决,在源码中setScene和focusInEvent函数中会调用一私有函数updateInputMethodSensitivity,此函数源码注释写着

    /*! \internal

    Enables input methods for the view if and only if the current focus item of
    the scene accepts input methods. Call function whenever that condition has
    potentially changed.
    

    */

    所以在focusInEvent事件之后重新设置一下setAttribute(Qt::WA_InputMethodEnabled);即可实现想要的效果

    打赏 评论
  • zqbnqsdsmd 2021-06-30 11:08

    自己事先一个软件盘,也就是里面包含一个输入面板的节面。

    打赏 评论

相关推荐 更多相似问题