我正在为Qt Designer创建一个插件(目前,我只能使用qt4.8.7)。它有一个表示硬盘上的目录的属性(它的类型是QString)。我不希望这个属性永远是可翻译的。在Qt设计器中工作时,我可以在属性编辑器停靠窗口中看到QObject的
objectName
属性执行我想要的,它下面没有子属性。在我的插件中,我定义了一个
settingsPath
属性使用
Q_PROPERTY
宏(与QObject声明
对象名
),但当我在Qt Designer中编辑小部件并添加插件小部件时
布丁斯帕斯
属性显示三个子项:可翻译、消歧和注释。我不关心最后两个,但我不希望这个属性是可翻译的,我也不希望这个插件的用户必须取消选中“可翻译”才能使用它。
这里有一个关于为什么用户可能需要取消选中可翻译的解释:我需要在波兰事件中使用该属性来查找一些注册表设置。不管它是否可翻译,这通常都能很好地工作。但是,如果widget在QSplitter中,我可以在生成的moc_u文件中看到,当设置QSplitter上的百分比时,我的plugin小部件的polish事件被调用(栈的几个层深),这是在任何翻译代码之前。这意味着在我的插件上的波兰事件发生时还没有读入设置。(setupUi()可以对任何东西调用EnsureLish(),这可能是Qt中的一个错误,但这是另一个问题。)