gpt4 book ai didi

python - Pyside 在 QtabWidget 中获取小部件

转载 作者:行者123 更新时间:2023-12-01 04:50:19 25 4
gpt4 key购买 nike

我有一个 QtabWidget,并在该 tabwidget 中创建了一个 ListWidget

self.tabWidget = QtGui.QTabWidget(self.centralwidget)
self.listWidget = QtGui.QListWidget(self.tabWidget)

然后我做了一个选项卡:

self.tab1 = QtGui.QWidget()
self.tabWidget.addTab(self.tab1,"hi")

我想做的是获取 tab1 的 QTabWidget 内部的 ListView 。

print self.tabWidget.currentWidget()

它打印出一个指针: PySide.QtGui.QWidget 对象位于 0x0000000004EA84A4我想要 QListWidget,这样我就可以调用 addItem 等函数。

编辑:我还有一个问题。我正在使用 Pyside,有一个名为 retranslateUI 和 setupUI 的函数。我想为我的 QTabWidget 添加一个信号,

self.tabWidget.currentChanged.connect(self.showStreamList(self.tabWidget.tabText(self.tabWidget.currentIndex())))

但我不知道该把它放在哪里。我把它放在 retranslateUI 中,因为那是button.clicked.connects,但是当我运行程序时,我认为它首先执行这个命令。 GUI 甚至不显示。一般来说,我应该在哪里对这些信号/事件监听器进行分组?

最佳答案

考虑到您的评论,您似乎想要将 QListWidget 动态添加到 QTabWidget,并希望单独访问每个 QListWidget。

QTabWidget 的 addTab() 方法采用 QWidget 和字符串作为其参数。顾名思义,QListWidget 是从 QWidget 派生/子类化的。因此,如果您向 addTab() 方法传递一个 QListWidget,则该方法将接受一个 QListWidget。所以 self.tabWidget.addTab(self.listWidget,"hi") 应该可以正常工作。

接下来,访问它们。 QTabWidget 有一个通过索引访问任何选项卡的方法,明智地称为 widget(index)。因此,如果您想访问第 n 个 widget,可以通过调用 self.tabWidget.widget(n) 来获取。

因此,您可以获得任何列表小部件并用它做一些事情:

lw = self.tabWidget.widget(0) # get the 0th widget
lw.addItem(...)

关于python - Pyside 在 QtabWidget 中获取小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28615440/

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