QT国际化机制的相互矛盾的地方[Q_PROPERTY与tr函数]
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国际化机制的互相矛盾的地方[Q_PROPERTY与tr函数]](http://img.reader8.net/uploadfile/jiaocheng/20140140/2703/2014012718031613206.png)