Как в QTabWidjet перейти с одного QTab в другой QTab по нажатию pushButton?
Есть интерфейс программы, сформированной в PyQt6, внутри нее мне необходимо сделать переход по вкладкам виджета QTabWidget путем нажатия кнопки. Я только осваиваю Python, строго не судите
Код main файла в котором я пытаюсь выстроить логику
import sys
from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt6 import uic
from Dogovor import Ui_Dialog
#Hook logic
class Ui_Dialog(QtWidgets.QDialog,Ui_Dialog):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setupUi(self)
self.pushButton_5.clicked.connect(self.the_button_was_clicked)
def the_button_was_clicked(self):
self.tabWidget.indexOf(self.tab_3).show()
#Create application
app = QtWidgets.QApplication(sys.argv)
window = Ui_Dialog()
window.show()
app.exec()
Тут я пытаюсь обратиться к QTab виджету (всего их три на QTabWidget) self.pushButton_5.clicked.connect(self.the_button_was_clicked), но программа закрывается после нажатия кнопки.
Нужно перейти из второй вкладки в третью после нажатия кнопки "Составить договор"
Помогите заложить фундамент
Ответы (1 шт):
Автор решения: Alexander Chernin
→ Ссылка
Вроде бы (если по-простому) должно быть вот так (если табов 3):
import sys
from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt6 import uic
from Dogovor import Ui_Dialog
#Hook logic
class Ui_Dialog(QtWidgets.QDialog,Ui_Dialog):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setupUi(self)
tabIndex = self.tabWidget.setCurrentWidget(self.tab)
self.pushButton_5.clicked.connect(self.the_button_was_clicked)
def the_button_was_clicked(self):
# Получаем индекс текущего таба
tabIndex = self.tabWidget.currentIndex()
if tabIndex == 0: # Если текущий индекс = 0, то переходим к табу с индексом 1
self.tabWidget.setCurrentWidget(self.tab_2)
elif tabIndex == 1: # Из таб_2 (индекс = 1), к табу с индексом 2
self.tabWidget.setCurrentWidget(self.tab_3)
else: # Идем в начало (на индекс 0)
self.tabWidget.setCurrentWidget(self.tab)
...
