PyQt 动态添加带按钮的选项卡 - 布局问题
PyQt dynamic adding tab with buttons - layout issue
我正在尝试创建一个系统,该系统会根据产品类型的数量自动添加选项卡,然后在相应选项卡中自动为项目添加按钮,但由于某种原因,所有选项卡都有相同的按钮作为第一个选项卡,我很确定这与布局有关,但我不确定图像到底是什么:
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)
看来您需要将布局添加到选项卡,而不是选项卡小部件:
for name in types:
tab = QtGui.QWidget()
typetab.addTab(tab, name[0])
typetablayout = QtGui.QGridLayout(tab)
...
# typetab.setLayout(typetablayout)
我正在尝试创建一个系统,该系统会根据产品类型的数量自动添加选项卡,然后在相应选项卡中自动为项目添加按钮,但由于某种原因,所有选项卡都有相同的按钮作为第一个选项卡,我很确定这与布局有关,但我不确定图像到底是什么:
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)
看来您需要将布局添加到选项卡,而不是选项卡小部件:
for name in types:
tab = QtGui.QWidget()
typetab.addTab(tab, name[0])
typetablayout = QtGui.QGridLayout(tab)
...
# typetab.setLayout(typetablayout)