Qt国际话是通过tr函数翻译来实现的,也就是没有tr函数就不能进行国际化,但Qt自身的一些机制又限制了tr函数的使用。这就导致了一些不能加tr函数的地方就没法进行国际化。
比如:Qt Designer自带的国际化文件:对于右侧显示属性的QtProperty的实现机制,所有右侧的属性都是在
Q_PROPERTY(Qt::ItemFlags itemFlags READ fakeItemFlags)
这样的声明中实现的,也就是说只有在此添加了Q_PROPERTY才能在Qt Designer的右侧属性栏显示相应的属性,可在Q_PROPERTY中是不能使用tr函数的,这也就不能进行国际化操作了。
Qt Designer的运行效果也显示了这一点。个人觉得是Qt的一个冲突地方,才疏浅薄,不敢妄断,求高手赐教!

本文探讨了Qt中tr函数的使用限制及其对国际化的挑战,特别关注QtDesigner的属性栏实现机制,揭示了其中存在的冲突,并提出可能的解决思路。
933

被折叠的 条评论
为什么被折叠?



