如何让pyuic4自动将标签设置为“MainWindow”?

时间:2010-01-22 20:22:12

标签: python qt pyqt designer

将新标签和textEdit添加到这些选项卡正上方的网格后,当我使用pyuic4生成ui.py文件时,它会为许多不同的选项卡生成以下行,这会产生错误,因为它们没有足够的参数。

self.tcTab.setTabText(self.tcTab.indexOf(self.tab_6),) 

然而.ui会在我做出改变之前产生这个罚款。

self.tcTab.setTabText(self.tcTab.indexOf(self.tab_6), QtGui.QApplication.translate("MainWindow", " ", None, QtGui.QApplication.UnicodeUTF8))

此代码工作正常,如果我将其编辑到ui.py文件中,我的更改也可以正常工作。但是,当我使用pyuic4时,如何让它自动执行此操作。因为根据我的理解,你永远不必编辑ui.py文件。感谢

编辑:我更新了一切都无济于事。我对旧的UI文件做的任何改变都会导致这个问题,如果我在它上面使用pyuic4。如果重要的话,可以在qtDesigner中的currentTabText下检查可翻译的IS。问题发生在.py文件的这个函数中:

def retranslateUi(self, MainWindow):

    #these are incorrect ones pyuic4 generates
    self.tcTab.setTabText(self.tcTab.indexOf(self.tab_6), )
    self.tcTab.setTabText(self.tcTab.indexOf(self.tab_9), )

    #these are the correct lines it used to generate
   self.tcTab.setTabText(self.tcTab.indexOf(self.tab_6),QtGui.QApplication.translate("MainWinow", " ", None, QtGui.QApplication.UnicodeUTF8))
   self.tcTab.setTabText(self.tcTab.indexOf(self.tab_9), QtGui.QApplication.translate("MainWindow", " ", None, QtGui.QApplication.UnicodeUTF8))

Edit2:即使我在qtdesigner中打开.ui,点击一下,甚至没有修改它,保存,然后使用pyuic4,它会生成错误的代码。

1 个答案:

答案 0 :(得分:1)

YAY !!!!

使用设计器时标签的setTabText字段必须包含一些内容。事实证明,ui使用白色空格作为tabText,每当你打开设计师时它就会摆脱白色空间。因此,如果您在进行更改后再将标签文本设置为空格,则可以正常工作。