Как в 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)

...
→ Ссылка