我正在从一个大列表中填充 QtWidgets.QGridLayout,并且我正在尝试创建一个循环,该循环将一遍又一遍地添加一行 5 列,直到我用完列表中的内容。
这是我破碎的大脑正在挣扎的一个例子......
mylist =['thing001', 'thing002', 'thing003', 'thing004', 'thing005', 'thing006', 'thing007', 'thing008', 'thing009', 'thing010']
rowCount=0
colCount=0
def start():
for each in mylist:
i=0
myThing = (str('btn_'+ each ))
colCount=0
rowCount=0
#add a column until it reaches 5, then make a new row?
for i in range(0,5):
colCount += 1
i+=1
print ('Making Thing: ' + myThing +' | '+(str(rowCount)+':'+(str(colCount))))
else:
print('New Row!!!!!!!!!!!!!!!!!!!')
colCount = 0
rowCount += 1
i+=1
start()
这给了我这个...
Making Thing: btn_thing001 | 0:1
Making Thing: btn_thing001 | 0:2
Making Thing: btn_thing001 | 0:3
Making Thing: btn_thing001 | 0:4
Making Thing: btn_thing001 | 0:5
New Row!!!!!!!!!!!!!!!!!!!
Making Thing: btn_thing002 | 0:1
Making Thing: btn_thing002 | 0:2
Making Thing: btn_thing002 | 0:3
Making Thing: btn_thing002 | 0:4
Making Thing: btn_thing002 | 0:5
New Row!!!!!!!!!!!!!!!!!!!
我想成为...
Making Thing: btn_thing001 | 0:1
Making Thing: btn_thing002 | 0:2
Making Thing: btn_thing003 | 0:3
Making Thing: btn_thing004 | 0:4
Making Thing: btn_thing005 | 0:5
New Row!!!!!!!!!!!!!!!!!!!
Making Thing: btn_thing006 | 1:1
Making Thing: btn_thing007 | 1:2
Making Thing: btn_thing008 | 1:3
Making Thing: btn_thing009 | 1:4
Making Thing: btn_thing010 | 1:5
New Row!!!!!!!!!!!!!!!!!!!
如何构建循环来输出我需要的内容?
您在 foreach ... 循环中将 rowCount 重置为 0,因此不可避免地它始终为 0。另外 rowCount 和 colCount 应该是函数内的局部变量,因为全局不需要。将两者的赋值移到函数中和循环之前,并且不要重置 rowCount。
mylist =['thing001', 'thing002', 'thing003', 'thing004', 'thing005', 'thing006', 'thing007', 'thing008', 'thing009', 'thing010']
def start():
rowCount = 0
colCount = 0
for each in mylist:
i=0
myThing = (str('btn_'+ each ))
colCount=0
#add a column until it reaches 5, then make a new row?
for i in range(0,5):
colCount += 1
i+=1
print ('Making Thing: ' + myThing +' | '+(str(rowCount)+':'+(str(colCount))))
else:
print('New Row!!!!!!!!!!!!!!!!!!!')
colCount = 0
rowCount += 1
i+=1
start()