PyQt5 Tab Widget:如何在鼠标单击时获取活动选项卡窗口的索引?
Posted
技术标签:
【中文标题】PyQt5 Tab Widget:如何在鼠标单击时获取活动选项卡窗口的索引?【英文标题】:PyQt5 Tab Widget: How can I get the index of active tab window on mouse click? 【发布时间】:2020-07-27 19:40:25 【问题描述】:我有一个带有 2 个标签的标签小部件。点击时如何获取Tab的索引号?
self.tab = QTabWidget()
self.tab.addTab(self.widget1, "Tab1")
self.tab.addTab(self.widget2, "Tab2")
data_entry_tab.tabBarClicked.connect(self.OnTabClicked)
def OnTabClicked(self):
tab_bar = self.sender()
# I want to use idx to do some calculation
idx = ?
【问题讨论】:
【参考方案1】:您可以使用tabBarClicked
信号:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets, QtWebEngineWidgets
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.tabwidget = QtWidgets.QTabWidget()
self.tabwidget.addTab(QtWidgets.QWidget(), "Tab1")
self.tabwidget.addTab(QtWidgets.QWidget(), "Tab2")
self.tabwidget.addTab(QtWidgets.QWidget(), "Tab3")
self.setCentralWidget(self.tabwidget)
self.tabwidget.tabBarClicked.connect(self.handle_tabbar_clicked)
def handle_tabbar_clicked(self, index):
print(index)
print("x2:", index * 2)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
【讨论】:
谢谢!对不起,我是新手。如何使用“索引”作为变量? @jabbarlee 你的问题令人困惑,你想用那个索引做什么?看来你有一个 XY 问题 我想使用该信号 tabBarClicked 并抓取索引以在另一个函数中使用。就像 OnTabClick() 和 self.sender()。 @jabbarlee 您的解释仍然令人困惑,如果您提供minimal reproducible example 那么也许我可以帮助您,否则我将继续前进。 你几乎给出了答案。但是在您的代码中,它会打印索引,但我想将其用作变量。假设我想将索引乘以 2 而不仅仅是打印它。以上是关于PyQt5 Tab Widget:如何在鼠标单击时获取活动选项卡窗口的索引?的主要内容,如果未能解决你的问题,请参考以下文章