gpt4 book ai didi

python - PyQt TabWidget 不显示 ui 或接受 setCurrentWidget

转载 作者:太空宇宙 更新时间:2023-11-03 18:43:34 25 4
gpt4 key购买 nike

我一直在处理工作申请,但遇到了一些困境。以下代码将成功向我的 tabWidget 添加一个新选项卡,设置选项卡的标题,加载外部 ui,按下两个按钮之一时生成文件或预览文件,并在按下时将其设置为当前选项卡从菜单操作打开:

def strap6_gui(self): #Create new tab and load TMS6 Strapping UI
self.strap6 = QtGui.QWidget(self.tabWidget)
self.tabWidget.addTab(self.strap6, 'TMS6 Tank Strapping')
uic.loadUi(strap6, self.strap6)
self.strap6.strap6_generate.clicked.connect(self.strap6_func)
self.strap6.strap6_previewButton.clicked.connect(self.strap6_prev)
self.tabWidget.setCurrentWidget(self.strap6)

问题是这样的:以下代码是从上面复制并稍加修改的,但它没有执行它应该执行的操作。它将打开一个新选项卡并设置标题,但此新选项卡不会设置为当前选项卡或加载 ui 文件:

def txled_gui(self): #Create new tab and load TMS6 Strapping UI
self.txled = QtGui.QWidget(self.tabWidget)
self.tabWidget.addTab(self.txled, 'TMS6 Tank Strapping')
uic.loadUi(txui, self.txled)
self.txled.strap6_generate.clicked.connect(self.strap6_func)
self.txled.strap6_previewButton.clicked.connect(self.strap6_prev)
self.tabWidget.setCurrentWidget(self.txled)

当我从事这项工作时,我复制了 band6.ui 并将其重命名为 txui.ui,这样我就可以判断选项卡是否从文件位置获取信息。文件位置设置为:

strap6 = os.path.abspath('.\UI\strap6_gui.ui')
txui = os.path.abspath('.\UI\txled_gui.ui')

我还有一些其他 UI 作为弹出窗口加载,它们位于同一目录中并以相同的方式调用,所以我知道这不会是问题。最后,这是我运行应用程序时控制台中显示的错误消息:

IOError: [Errno 22] invalid mode ('rb') or filename: 'C:\\Users\\Seth\\Documents\\TSE\\pythonTesting\\TriadGUI\\UI\txled_gui.ui'

为什么第一个 def 可以正常工作,但第二个 def 是第一个 def 的副本,并且带有新名称等设置却不能?

最佳答案

我想你会踢自己的。

txui 中有一个制表符,因为您没有转义反斜杠。

所以你需要:

txui = os.path.abspath(r'.\UI\txled_gui.ui')

或者:

txui = os.path.abspath('.\\UI\\txled_gui.ui')

关于python - PyQt TabWidget 不显示 ui 或接受 setCurrentWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20021698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com