2015-12-07 3 views
0

Я пытаюсь добавить элемент в QLayout (в PyQT5) следующим образом:Ошибка при добавлении элемента в QLayout

def add_parts_BC(self): 
     """This adds a tab with part B and C""" 

     BCVerticalLayout = QVBoxLayout() 
     partB = PartB() 
     partC = PartC() 

     BCVerticalLayout.addWidget(PartB, QtCore.Qt.AlignTop) 
     BCVerticalLayout.addWidget(PartC) 

     # add the layout to the tabbed widget layout 
     self.tabbedWidget.addTab(BCVerticalLayout, "Part B and C") 

Затем я получаю следующее сообщение об ошибке:

BCVerticalLayout.addWidget(PartB, QtCore.Qt.AlignTop) 
TypeError: QBoxLayout.addWidget(QWidget, int stretch=0, Qt.Alignment alignment=0): argument 1 has unexpected type 'PyQt5.QtCore.pyqtWrapperType' 

Я не знаю, где все сделано неправильно. Есть идеи?

Кстати, Парта и PartB выглядит следующим образом:

class PartA(QWidget): 
    def __init__(self): 
     super().__init__() 

    # more code here 


class PartB(QWidget): 
    def __init__(self): 
     super().__init__() 

    # more code here 
+0

Вы можете разместить код 'PartB' и' PartC'? ... Они кажутся классами или что? –

+0

Iron Fist: Да, и PartB, и PartC являются классами, наследуемыми от QWidget. – Amani

+1

Можно ли увидеть какой-то код, относящийся к ним? –

ответ

1

Я считаю, что это ошибка TYPO:

partB = PartB() #name of object with lower case p 
partC = PartC() 

BCVerticalLayout.addWidget(PartB, QtCore.Qt.AlignTop) #name of object with upper case p 

так и должно быть:

partB = PartB() 
partC = PartC() 

BCVerticalLayout.addWidget(partB, QtCore.Qt.AlignTop) 
+0

Никогда не думал об этом, спасибо, что он работает. – Amani

+0

Нет pblm ... подумайте о принятии моего ответа, если вас это устраивает .. :) –

Смежные вопросы