@saund901

Как сделать вкладку неактивной при выборе radioButton?

Подскажите пожалуйста. Есть главная форма (mainForm.py), внутри создается QTabWidget с 4 вкладками. Код вкладки - class TabPage. Как в TabPage, при нажатии на кнопку, сделать текущую вкладку неактивной?
mainForm.py:
import mainFormUI
import tabPage
from PyQt5 import QtWidgets, QtCore, QtGui

class MainForm(QtWidgets.QWidget):
    def __init__(self, user, id, course):
        QtWidgets.QWidget.__init__(self)
        self.ui = mainFormUI.Ui_Dialog()
        self.ui.setupUi(self)

        self.user = user
        self.id = id
        self.course = course
        self.ui.curUsr.setText(self.user + " (" + self.id + ", " + self.course + " курс)")

        self.tabWidget = QtWidgets.QTabWidget(self)
        for i in range(1, 5):
            self.tabWidget.addTab(tabPage.TabPage(i), str(i))

        self.grid = QtWidgets.QGridLayout()
        self.grid.setAlignment(QtCore.Qt.AlignCenter)
        self.grid.addWidget(self.ui.endBtn)
        self.vbox = QtWidgets.QVBoxLayout()
        self.vbox.setMenuBar(self.main_menu())
        self.vbox.addWidget(self.ui.curUsr)
        self.vbox.addWidget(self.tabWidget)
        self.vbox.addLayout(self.grid)
        self.setLayout(self.vbox)

        self.show()

tabPage.py:
import mainForm
from PyQt5 import QtWidgets, QtCore, QtGui

class TabPage(QtWidgets.QWidget):
    def __init__(self, index, parent=None):
        super().__init__(parent)
        #QtWidgets.QWidget.__init__(self)
        self.index = index

        self.qLbl = QtWidgets.QLabel('question 1')
        self.rb1 = QtWidgets.QRadioButton('rb1')
        self.cb = QtWidgets.QPushButton('Подтвердить')

        self.grid = QtWidgets.QGridLayout()
        self.grid.setAlignment(QtCore.Qt.AlignCenter)
        self.grid.addWidget(self.cb)

        self.hbox = QtWidgets.QHBoxLayout()
        self.hbox.addLayout(self.grid)

        self.bg = QtWidgets.QButtonGroup()
        self.bg.addButton(self.rb1, id=1)
        self.bg.buttonClicked.connect(self._on_radio_button_clicked)

        self.vbox = QtWidgets.QVBoxLayout()
        self.vbox.addWidget(self.qLbl)
        self.vbox.addWidget(self.rb1)
        self.vbox.addLayout(self.hbox)
        self.setLayout(self.vbox)

    def _on_radio_button_clicked(self, button):
       self.parent().tableWidget.setTabEnabled(self.index-1, False) # ???
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ответы на вопрос 1
@bbkmzzzz
Как говорит документация, есть метод у QTabWidget -> setTabEnabled(index, bool)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 23:46
20000 руб./за проект
24 нояб. 2024, в 23:07
2000 руб./за проект