【问题标题】:How to make pyuic4 automatically set tabs to "MainWindow"?如何使 pyuic4 自动将选项卡设置为“MainWindow”?
【发布时间】:2011-01-08 09:06:31
【问题描述】:

在这些选项卡正上方的网格中添加新标签和 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,我对旧 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,它会生成错误的代码。

【问题讨论】:

  • 你使用的是哪个版本的 PyQt4?
  • pyuic4 --version Python 用户界面编译器 4.5.1 用于 Qt 版本 4.5.1
  • 你能发布一个显示问题的最小 UI 文件吗?
  • 我用更多信息编辑了这个问题。

标签: python qt pyqt designer


【解决方案1】:

耶!!!!

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

【讨论】:

    猜你喜欢
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 2021-03-18
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多