在for循环中使用scene.addRect。如何在矩形的名称中添加变量编号?

时间:2015-07-27 14:09:23

标签: python python-2.7 pyqt4 qgis

首先,我想提一下我的编程经验和知识非常有限。如果您能用实际代码回答我的问题,我可以简单地复制和粘贴,我将非常感激。

我正在使用error in run: VM "boot2docker-vm" is not running.在Python 2.7中为QGIS编写一个插件来创建GUI。
我使用for循环在PyQt4中创建成对的矩形。每次迭代都会给出一对矩形。现在我想访问for循环之外的这些矩形,但左侧的所有矩形都称为QGraphicsScene,右侧的所有矩形都称为rect_L。有没有办法在其名称中添加变量号?我想拨打第一对rect_Rrect_L_1,第二对rect_R_1rect_L_2,依此类推(或沿着这些线路)。
我希望我的问题很清楚。下面是rect_R_2 QGraphicsScene屏幕截图的链接以及代码的相关部分(我认为)。提前谢谢。

Screenshot

QGIS

1 个答案:

答案 0 :(得分:0)

使用一两个清单。

L_rects = []
R_rects = []
for i in changeMatrix:
    count_j = 1
    for j in i:
        if j <> 0 and count_i <> count_j:
            textitem_L = scene.addText(L[count_j-1])
            textitem_R = scene.addText(L[count_i-1])
            textitem_L.setPos(0, count_valid*50)
            textitem_R.setPos(300, count_valid*50)
            rect_L = scene.addRect(50, count_valid*50, 25, 25, pen, brush)
            rect_R = scene.addRect(250, count_valid*50, 25, 25, pen, brush)
            rect_L.setFlags(QtGui.QGraphicsItem.ItemIsMovable | QtGui.QGraphicsItem.ItemIsSelectable | QtGui.QGraphicsItem.ItemIsFocusable | QtGui.QGraphicsItem.ItemSendsGeometryChanges)
            rect_R.setFlags(QtGui.QGraphicsItem.ItemIsMovable | QtGui.QGraphicsItem.ItemIsSelectable | QtGui.QGraphicsItem.ItemIsFocusable | QtGui.QGraphicsItem.ItemSendsGeometryChanges)
            rect_L.setAcceptsHoverEvents(True)
            rect_R.setAcceptsHoverEvents(True)
            L_rects.append(rect_L)
            R_rects.append(rect_R)
            count_valid += 1
        count_j += 1
    count_i += 1

现在您可以使用索引来访问单个rect对象,例如。 L_rects[2]