Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何按名称设置QTabWidget的当前选项卡?_Qt_Pyqt_Pyqt5_Qtabwidget - Fatal编程技术网

如何按名称设置QTabWidget的当前选项卡?

如何按名称设置QTabWidget的当前选项卡?,qt,pyqt,pyqt5,qtabwidget,Qt,Pyqt,Pyqt5,Qtabwidget,PyQt5的QTabWidget有一个方法setCurrentIndex,您可以使用该方法将特定选项卡变为活动选项卡。但我似乎找不到任何方法按选项卡名称进行索引(这是我在Qt设计器中设置的)。有没有办法(直接或间接)改为按名称编制索引 选项卡名称成为设置为选项卡页面的小部件的对象名称。添加选项卡时,页面将自动重新设置为选项卡小部件的内部堆栈小部件的父级。这意味着您可以获得如下页面的引用: page = tabwidget.findChild(QWidget, tabname) index =

PyQt5的
QTabWidget
有一个方法
setCurrentIndex
,您可以使用该方法将特定选项卡变为活动选项卡。但我似乎找不到任何方法按选项卡名称进行索引(这是我在Qt设计器中设置的)。有没有办法(直接或间接)改为按名称编制索引


选项卡名称成为设置为选项卡页面的小部件的对象名称。添加选项卡时,页面将自动重新设置为选项卡小部件的内部堆栈小部件的父级。这意味着您可以获得如下页面的引用:

page = tabwidget.findChild(QWidget, tabname)
index = tabwidget.indexOf(page)
tabwidget.setCurrentWidget(tabwidget.findChild(QWidget, tabname))
然后像这样得到它的索引:

page = tabwidget.findChild(QWidget, tabname)
index = tabwidget.indexOf(page)
tabwidget.setCurrentWidget(tabwidget.findChild(QWidget, tabname))
或者直接按名称设置当前选项卡,如下所示:

page = tabwidget.findChild(QWidget, tabname)
index = tabwidget.indexOf(page)
tabwidget.setCurrentWidget(tabwidget.findChild(QWidget, tabname))

另一种方法是在添加选项卡时记住选项卡的索引。然后在以后的代码中重用它:

index = tabWidget.addTab(myWidget)
// ...
tabWidget.setCurrentIndex(index)

给定选项卡名称的方法返回与选项卡名称匹配的选项卡的索引列表

def get_indices(tab_name):
    return [index for index in range(tab_widget.count())
        if tab_name == tab_widget.tabText(index)]
使用此函数查找索引后,可以使用标准PyQt方法

这不是最好的方法,但有时可能有用。

您可以像这样使用
indexOf()

删除您的选项卡:

self.tabWidget.removeTab(self.tabWidget.indexOf(self.YOUR_TAB_name))
添加您的选项卡:

self.tabWidget.addTab(self.YOUR_TAB_name, "name"))