Python中的变量列表

2024-09-30 02:36:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一些Python代码来在Scribus中创建文本框,然后对文本框进行分组。我很难把脑子集中在如何使用列表或字典来避免变量问题上。你知道吗

我有代码来创建一系列文本框,然后设置文本。你知道吗

shpA = scribus.createText(strLeft, strTop, strWidth, strHeight)
scribus.setText(strTextA, shpA) 
shpB = scribus.createText(strLeft, strTop, strWidth, strHeight)
scribus.setText(strTextB, shpB) 
shpC = scribus.createText(strLeft, strTop, strWidth, strHeight)
scribus.setText(strTextC, shpC) 

一旦文本框完成,我就在页面上对它们进行分组。你知道吗

lstObjects=[shpA, shpB, shpC]
scribus.groupObjects(lstObjects)

问题来了。我需要生成多个shpA文本框通过循环通过一个可变的迭代次数,然后运行分组。你知道吗

icnt = 0
while icnt < (intNumLines):
    shpA = scribus.createText(strLeft, strTop, strWidth, strHeight)
    scribus.setText(strTextA, shpA) 
    icnt += 1

我已经能够运行循环并生成盒子。但是,我还没有弄清楚如何为每个文本框(shpA1、shpA2等)指定不同的变量名。结果,只有循环中的最后一个文本框得到一个变量(shpA),我无法引用循环中生成的其他文本框。你知道吗

我读过几十篇关于列表和字典的文章,但恐怕所有这些对我来说都有点超前了。你知道吗

任何帮助都将不胜感激。你知道吗


Tags: 代码列表字典文本框settextcreatetexticntscribus
1条回答
网友
1楼 · 发布于 2024-09-30 02:36:37

容器(list或dict)绝对是唯一的方法,而且一点也不复杂。例如,让你的循环

icnt = 0
shpAS = []  # empty list to start
while icnt < (intNumLines):
    shpA = scribus.createText(strLeft, strTop, strWidth, strHeight)
    scribus.setText(strTextA, shpA) 
    icnt += 1
    shpAS.append(shpA)  # add new textbox at the end of the list

现在,shpAS是每个创建为shpA的文本框的列表。无论你想在哪里(如果你每次都能生成一个新的变量)使用shpA1,就用shpAS[0];无论在哪里shpA2shpAS[1];等等,这都和使用许多单独的“标量”变量(显然是你内心的愿望)一样简单。你知道吗

相关问题 更多 >

    热门问题