所以我在标签栏中有两个标签。我已经设置了一个信号,以便在单击时可以运行一个功能。该函数将调用当前索引并进行打印。
为什么打印输出给我它曾经在但当前不在的页面的索引?
import sys
from PySide2.QtWidgets import *
class Window(QWidget):
def __init__(self):
QWidget.__init__(self)
self.tabs = QTabBar()
self.tabs.addTab("Main Menu")
self.tabs.addTab("Network Menu")
layout = QHBoxLayout()
layout.addWidget(self.tabs)
self.tabs.tabBarClicked.connect(self.tab_push)
self.setLayout(layout)
def tab_push(self):
x = self.tabs.currentIndex()
print(x)
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
缩进有点奇怪,不确定为什么会这样,但是仍然有效。
答案 0 :(得分:3)
这不是错误,而是正常行为:当按下标签栏时,获取索引,发出信号tabBarClicked,然后更改currentIndex,然后在发出信号与更新currectIndex之间有一段时间,在那一刻,您就给人留下了深刻的印象。如果要获取按下的选项卡的索引,请使用信号信息:
def tab_push(self, index):
print(index)