如何让pyuic4自动将选项卡设置为“MainWindow”?

发布于 2024-08-19 01:38:09 字数 1252 浏览 4 评论 0原文

在将新标签和文本编辑添加到这些选项卡正上方的网格中后,当我使用 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 下检查可翻译。问题发生在 .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,它也会生成错误的代码。

After adding a new label and textEdit to a grid right above these tabs, When I generate the ui.py file with pyuic4, It generates the the following lines for many different tabs which gives errors about not having enough arguments.

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

However the .ui would generate this fine before I made the changes.

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

This code works fine, and If I edit this into the ui.py file my changes also work fine. However how do I get it to automatically do this when i use pyuic4. Because from what I understand is that you should never have to edit the ui.py file. Thanks

Edited: I updated everything to no avail. pretty much any change I do to old UI file will cause this problem if I use pyuic4 on it. translatable IS checked under currentTabText in qtDesigner if that matters. The problem happens in this function of the .py file:

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: Even when I open the .ui up in qtdesigner, click something, without even modifying it, save, then use pyuic4, it generates the bad code.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔戏命师 2024-08-26 01:38:09

耶!!!!

使用设计器时选项卡的 setTabText 字段中必须有一些内容。事实证明,用户界面使用空格作为 tabText,每当您打开设计器时,它都会删除空格。因此,如果您在进行更改后再次将选项卡文本设置为空格,则它会起作用。

YAY!!!!

The setTabText field for tabs when using designer must have something in it. It turns out the ui was using white spaces as the tabText, whenever you open designer it got rid of the white spaces. So if you set the tab text to a space again after making your changes it works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文