2015-01-15 3 views
0

Я пытаюсь создать систему, которая автоматически добавит вкладки в соответствии с количеством типов продуктов, а затем автоматически добавит кнопки на соответствующей вкладке для элементов, но по какой-либо причине все вкладки имеют ту же кнопку в качестве первой вкладки, я уверен, что это что-то делать с макетом, но я не уверен, что именно образом: enter image description hereДинамическая вкладка добавления PyQt с кнопками - проблема с макетами

 typetab = QtGui.QTabWidget(self) 
     types = producttypes() ##returns a tuple with type names e.g. [('Drinks',), ('Food',)] 

     for name in types: 
      tab = QtGui.QWidget() 
      typetab.addTab(tab, name[0]) 
      products = typeitems(name[0]) ## returns items of that product type [('Coke',), ('Pepsi',)] 
      typetablayout = QtGui.QGridLayout() 
      for length in range(math.floor(len(products)/5) + 1): 
       for width in range(5): 
        try: 
         button = QtGui.QPushButton(products[width][0]) 
         button.setObjectName(products[width][0]) 
         typetablayout.addWidget(button,length, width) 
        except IndexError: 
         break 
        print([length,width]) 
      typetab.setLayout(typetablayout) 
+0

Поскольку вопрос решен, и ошибка была простой ошибкой, которая вряд ли поможет другим, я рекомендую закрыть этот вопрос. – Trilarion

ответ

1

похоже, что вам нужно добавить расположение на вкладке, а не на табуйтете:

for name in types: 
     tab = QtGui.QWidget() 
     typetab.addTab(tab, name[0]) 
     typetablayout = QtGui.QGridLayout(tab) 
     ... 

     # typetab.setLayout(typetablayout) 
+0

Спасибо! Это сработало! – Inthuson