是否可以将qtdesigner中所有内容的可翻译复选框设置为默认禁用。我只需要一种语言,并且更喜欢自动生成的更干净的代码,将retranslateUI功能保留为空,并在构造函数中进行所有设置。
将所有设置为禁用的复选框非常烦人。
答案 0 :(得分:0)
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。