QGraphicsTextItem在插件中无法输入中文

疯丶 2017-09-06 09:37:16
写了一个简单的便贴条小程序,每次添加一个自定义item,即便贴条,输入文本是用的QGraphicsTextItem,以插件的形式(不是插件直接调用自定义item类是没问题的,只是恰好我用了插件发现的这个问题。。),然后奇怪的事发生了,这个继承自QGraphicsTextItem的子类无法输入中文。。我以为是我没有重写哪个方法,然后插件直接new了一个QGraphicsTextItem返回,还是不能输入中文,,,然后不用插件,直接new一个QGraphicsTextItem加入scene就可以输入中文,所以是不是QGraphicsTextItem放在plugin里就不能输入中文(从我试验的结果看貌似是的)?但是这是为什么呀。。。我拖动插件中的QGraphicsTextItem都可以,说明可以正常交互,求解。。。代码不贴了,这就是个最最简单的插件工程,里边就new了个QGraphicsTextItem返回给调用它的工程
...全文
991 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuliuliu3654 2020-12-15
  • 打赏
  • 举报
回复
无法输入数字怎么办
liuliuliu3654 2020-12-15
  • 打赏
  • 举报
回复
无法输入中文怎么办
疯丶 2017-09-06
  • 打赏
  • 举报
回复
知道为什么了。。 就是因为setFlags()这个函数,查了下文档,"Sets the item flags to flags. All flags in flags are enabled; all flags not in flags are disabled."原来一旦调用就要把需要的flag都写进去,不然就disabled了。。 之前写的是: setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsFocusable); 改成如下即可(ItemAcceptsInputMethod是支持不同语言的flag): setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemAcceptsInputMethod); 这次又手比脑子反应快了。。自问自答。。
疯丶 2017-09-06
  • 打赏
  • 举报
回复
不对,同一个工程,一个继承自QGraphicsTextItem的子类创建的文本item也是无法输入中文的。。
雪哥很帅 2017-09-06
  • 打赏
  • 举报
回复
很不错的样子!!最近在学习! 谢谢楼主分享

16,235

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧