1

我有一个问题,pyside2-uic因为它似乎会生成错误的代码。首先,有没有办法在 Qt Designer 中禁用翻译?禁用每个字符串的可翻译复选框很痛苦,我发现retranslateUi代码有点乱。

现在到了真正的问题:如您所见,pyside2-uic即使对于不相关的小部件,似乎也增加了项目位置计数。如果我创建一个子类并执行它,组合框之类combox_wb的不带有默认值,因为项目 7-9 可能不存在并且可能应该是 0-2。(我知道您可以将它们留空并在继承自 uic 生成的类的类中手动进行设置)。

def retranslateUi(self, MainWindow):
    self.gbox_settings.setTitle(QtWidgets.QApplication.translate("MainWindow", "settings", None, -1))
    self.combox_colorspace.setItemText(0, QtWidgets.QApplication.translate("MainWindow", "0   Raw color (unique to each camera)", None, -1))
    self.combox_colorspace.setItemText(1, QtWidgets.QApplication.translate("MainWindow", "1   sRGB D65 (default)", None, -1))
    self.combox_colorspace.setItemText(2, QtWidgets.QApplication.translate("MainWindow", "2   Adobe RGB (1998) D65", None, -1))
    self.combox_colorspace.setItemText(3, QtWidgets.QApplication.translate("MainWindow", "3   Wide Gamut RGB D65", None, -1))
    self.combox_colorspace.setItemText(4, QtWidgets.QApplication.translate("MainWindow", "4   Kodak ProPhoto RGB D65", None, -1))
    self.combox_colorspace.setItemText(5, QtWidgets.QApplication.translate("MainWindow", "5   XYZ", None, -1))
    self.combox_colorspace.setItemText(6, QtWidgets.QApplication.translate("MainWindow", "6   ACES", None, -1))
    self.combox_wb.setItemText(7, QtWidgets.QApplication.translate("MainWindow", "ignore camera white balance", None, -1))
    self.combox_wb.setItemText(8, QtWidgets.QApplication.translate("MainWindow", "use camera white balance", None, -1))
    self.combox_wb.setItemText(9, QtWidgets.QApplication.translate("MainWindow", "specify  own raw white balance", None, -1))
    self.combox_gamma.setItemText(10, QtWidgets.QApplication.translate("MainWindow", "linear", None, -1))
    self.combox_gamma.setItemText(11, QtWidgets.QApplication.translate("MainWindow", "sRGB", None, -1))
    self.combox_bitdepth.setItemText(12, QtWidgets.QApplication.translate("MainWindow", "16-bit", None, -1))
    self.combox_bitdepth.setItemText(13, QtWidgets.QApplication.translate("MainWindow", "8-bit", None, -1))
    self.tbtn_dcrawexec.setText(QtWidgets.QApplication.translate("MainWindow", "...", None, -1))
4

2 回答 2

1

刚拿到新版本的 PySide2。好像现在已经修好了。如果您使用 pip,只需运行“pip install --upgrade PySide2”即可升级。

于 2019-09-09T12:14:23.230 回答
0

这是由 PySide 中的错误引起的。当使用 PyQt 或旧的 PySide 时,相同的 ui 文件将按预期工作(即每个小部件的索引从零重新开始)。查看pyside2uic/uiparser.py的代码表明它们使用共享属性 ( self.item_nr) 进行索引 - 但对于树小部件,它只会重置为零。

我建议您创建一个错误报告

于 2019-08-07T11:59:05.670 回答