Skip to main content
 首页 » 编程设计

python之如何让 pyuic4 自动将标签设置为 "MainWindow"

2025年05月04日26虾米哥

在这些选项卡正上方的网格中添加新标签和文本编辑后,当我使用 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 文件。谢谢

已编辑:我更新了所有内容,但无济于事。如果我在其上使用 pyuic4,我对旧 UI 文件所做的几乎所有更改都会导致此问题。如果重要的话,可翻译的是在 qtDesigner 的 currentTabText 下检查的。问题发生在.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,它会生成错误代码。

请您参考如下方法:

耶!!!!

使用设计器时选项卡的 setTabText 字段必须包含一些内容。事实证明,用户界面使用空白作为 tabText,无论何时打开设计器,它都会摆脱空白。因此,如果您在进行更改后再次将制表 rune 本设置为空格,它会起作用。