【发布时间】:2020-03-09 09:08:29
【问题描述】:
我想在按下按钮时切换它们自己的类中包含的选项卡(下一个/上一个选项卡)。但是,我似乎无法做到。如果我使用 self.tabs.show() 我会打开一个新窗口。但是,我只想让它在同一个窗口中切换。你能帮助我吗?示例代码如下。
from PyQt5.QtWidgets import QPushButton, QTabWidget, QApplication, QDialog, QVBoxLayout, QWidget
import sys
class Tab(QDialog):
def __init__(self):
super().__init__()
vbox = QVBoxLayout()
self.tabWidget = QTabWidget()
self.tabWidget.addTab(TabContact(), "Contact Details")
self.tabWidget.addTab(TabPeronsalDetails(), "Personal Details")
vbox.addWidget(self.tabWidget)
self.setLayout(vbox)
class TabContact(QWidget):
def __init__(self):
super().__init__()
pushButton = QPushButton("Go to next")
pushButton.clicked.connect(self.nextTab)
vbox = QVBoxLayout()
vbox.addWidget(pushButton)
self.setLayout(vbox)
def nextTab(self):
self.tabs = Tab()
self.tabs.tabWidget.setCurrentIndex(0)
class TabPeronsalDetails(QWidget):
def __init__(self):
super().__init__()
pushButton_2 = QPushButton("Go to prior")
pushButton_2.clicked.connect(self.priorTab)
vbox = QVBoxLayout()
vbox.addWidget(pushButton_2)
self.setLayout(vbox)
def priorTab(self):
self.tabs = Tab()
self.tabs.tabWidget.setCurrentIndex(0)
if __name__ == "__main__":
app = QApplication(sys.argv)
tabdialog = Tab()
tabdialog.show()
app.exec()
【问题讨论】:
标签: python pyqt pyqt5 qtabwidget