我有一个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和theres一个名为retranslateUI和setupUI的函数。我想为我的QTabWidget添加一个信号,
self.tabWidget.currentChanged.connect(self.showStreamList(self.tabWidget.tabText(self.tabWidget.currentIndex())))
但我不知道该把它放在哪里。我把它放在retranslateUI中,因为那里有button.clicked.connects但是当我运行程序时,我认为它首先执行这个命令。 GUI甚至不显示。一般来说,我应该在哪里对这些信号/事件监听器进行分组?
答案 0 :(得分:2)
考虑到您的评论,您似乎想要将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(...)