Pyside 在 QtabWidget 中获取一个小部件
Pyside getting a widget inside a QtabWidget
我有一个 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 的列表视图。
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甚至不显示。一般来说,我应该将这些 signals/event 个听众分组在哪里?
考虑到您的评论,您似乎想要将 QListWidgets 动态添加到 QTabWidget 并希望单独访问每个 QListWidget。
QTabWidget 的 addTab() 方法接受一个 QWidget 和一个字符串作为它的参数。顾名思义,QListWidget 是从 QWidget 派生/子类化的。因此,addTab()
方法将接受一个 QListWidget,如果你传递一个。所以 self.tabWidget.addTab(self.listWidget,"hi")
应该可以正常工作。
接下来,访问它们。 QTabWidget 有一种通过索引访问任何选项卡的方法,明智地称为 widget(index)
。因此,如果你想访问第 n
个小部件,你可以通过调用 self.tabWidget.widget(n)
.
来获取它
因此您可以获得任何列表小部件并使用它做一些事情:
lw = self.tabWidget.widget(0) # get the 0th widget
lw.addItem(...)
我有一个 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 的列表视图。
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甚至不显示。一般来说,我应该将这些 signals/event 个听众分组在哪里?
考虑到您的评论,您似乎想要将 QListWidgets 动态添加到 QTabWidget 并希望单独访问每个 QListWidget。
QTabWidget 的 addTab() 方法接受一个 QWidget 和一个字符串作为它的参数。顾名思义,QListWidget 是从 QWidget 派生/子类化的。因此,addTab()
方法将接受一个 QListWidget,如果你传递一个。所以 self.tabWidget.addTab(self.listWidget,"hi")
应该可以正常工作。
接下来,访问它们。 QTabWidget 有一种通过索引访问任何选项卡的方法,明智地称为 widget(index)
。因此,如果你想访问第 n
个小部件,你可以通过调用 self.tabWidget.widget(n)
.
因此您可以获得任何列表小部件并使用它做一些事情:
lw = self.tabWidget.widget(0) # get the 0th widget
lw.addItem(...)