Dr_Elvis
@Dr_Elvis
В гугле забанен

Почему не добавляются виджеты в первой вкладке?

Привет!
Почему после первого нажатия на "++++" добавляется вкладка, но содержимое нет? А если еще раз нажать, то добавится вторая вкладка уже с содержимым.
На саму форму не смотрите, выдернул просто для примера, убрал всё не нужное. Суть при запуске понятна.
import sys
from PyQt5.QtGui import QIcon
from PyQt5 import QtCore, QtWidgets

class mainForm(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.runUi()

    def runUi(self):
        self.resize(250, 150)
        self.move(300, 300)
        self.setWindowTitle('Teest!')
        self.setMaximumSize(QtCore.QSize(560, 620))
        self.setMinimumSize(QtCore.QSize(560, 620))

        self.Vlayout = QtWidgets.QVBoxLayout(self)
        self.H2layout = QtWidgets.QHBoxLayout()
        self.tabWidgets = QtWidgets.QTabWidget(self)
        self.tabWidgets.setGeometry(QtCore.QRect(10, 170, 541, 351))
        self.H2layout.addWidget(self.tabWidgets)
        self.Vlayout.addLayout(self.H2layout)

        self.H3layout = QtWidgets.QHBoxLayout()
        self.frame = QtWidgets.QFrame(self)
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.H3layout.addWidget(self.frame)
        self.Vlayout.addLayout(self.H3layout)

        self.buttonAddProject = QtWidgets.QPushButton(self.frame)
        self.buttonAddProject.setGeometry(QtCore.QRect(266, 5, 131, 23))
        self.buttonAddProject.setText('+++++++++')
        self.buttonAddProject.clicked.connect(self.add_project_tab)

        self.Vlayout.setStretch(0, 3)
        self.Vlayout.setStretch(1, 6)

    def add_project_tab(self):
        self.tab = QtWidgets.QWidget()
        self.tabWidgets.addTab(self.tab, '+1')
        self.groupBox_2 = QtWidgets.QGroupBox(self.tab)
        self.groupBox_2.setGeometry(QtCore.QRect(10, 0, 511, 101))
        self.horizontalLayoutWidget_3 = QtWidgets.QWidget(self.groupBox_2)
        self.horizontalLayoutWidget_3.setGeometry(QtCore.QRect(10, 50, 491, 41))
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_3)
        self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.txtLogin = QtWidgets.QLabel(self.horizontalLayoutWidget_3)
        self.horizontalLayout_3.addWidget(self.txtLogin)
        self.txtLogin.setText('Логин')
        self.tabWidgets.setCurrentIndex(self.tabWidgets.indexOf(self.tab))

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    ui = mainForm()
    ui.show()
    sys.exit(app.exec_())
  • Вопрос задан
  • 231 просмотр
Решения вопроса 1
JaxxDexx
@JaxxDexx
self.tabWidgets.addTab(tab, '+1')
перенеси в конец перед
self.tabWidgets.setCurrentIndex(self.tabWidgets.indexOf(self.tab))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы