是否可以将 qtdesigner 中所有内容的可翻译复选框设置为默认禁用。我只需要一种语言,并且更喜欢更简洁的自动生成代码,将 retranslateUI 函数留空并在构造函数中设置所有内容。
将所有内容的复选框设置为禁用非常烦人。
是否可以将 qtdesigner 中所有内容的可翻译复选框设置为默认禁用。我只需要一种语言,并且更喜欢更简洁的自动生成代码,将 retranslateUI 函数留空并在构造函数中设置所有内容。
将所有内容的复选框设置为禁用非常烦人。
Qt设计器不允许这样做,这是插件的默认配置,所以我会提出一个解决方法,用一个小脚本修改.ui来禁用该属性:
from PyQt4 import QtCore, QtXml
if __name__ == '__main__':
filename = "/path/of/your_file.ui"
file = QtCore.QFile(filename)
if not file.open(QtCore.QFile.ReadOnly):
sys.exit(-1)
doc = QtXml.QDomDocument()
if not doc.setContent(file):
sys.exit(-1)
file.close()
strings = doc.elementsByTagName("string")
for i in range(strings.count()):
strings.item(i).toElement().setAttribute("notr", "true")
if not file.open(QtCore.QFile.Truncate|QtCore.QFile.WriteOnly):
sys.exit(-1)
xml = doc.toByteArray()
file.write(xml)
file.close()
笔记:
该脚本与 PyQt4、PyQt5、PySide 和 PySide2 兼容,它们只应将 PyQt4 更改为其他库的名称。