我在玩pyqt4
。我想创建一个custom widget
,和draw
一些矩形。我已经在QCanvas
上使用了类似的东西,但是现在我只想让它绘制我的rectangles
,如果我从我的自定义类创建一个对象
self.IND = [] contains colors (QColor)
class labelBOX(QtGui.QWidget):
def __init__(self, parent, X,Y, holes):
super(labelBOX , self).__init__(parent)
self.gridL = QtGui.QGridLayout(self)
self.setGeometry(X,Y, 50, 100)
self.setWindowTitle("LEGEND")
self.HOLES = holes
self.LBL = []
self.setLayout(self.gridL)
self.i = 0
self.j = 0
self.genLBL()
self.IND = []
self.qp = QtGui.QPainter()
self.genIND(self.qp)
self.show()
"""
Generate labels
"""
def genLBL(self):
for k in range(len(self.HOLES)):
self.LBL.append(QtGui.QLabel(QtCore.QString(self.HOLES[k].getNAME())))
for k in range(len(self.LBL)):
self.gridL.addWidget(self.LBL[k])
"""
Generate indicators
"""
def genIND(self, qp):
self.i = 0
self.j = 1
for k in range(len(self.HOLES)):
self.IND.append(self.HOLES[k].getCOLOR())
for k in range(len(self.IND)):
qp.setBrush(self.IND[k])
self.gridL.addWidget(qp.fillRect(10,10,50,50, ))
class OTHERCLASS():
....
self.WIDGET = labelBOX(self, 550, 350, dummyLOAD)
....
如果要手动在自定义小部件上绘制,则可以覆盖paintEvent或使用绝对定位并将矩形放置在所需位置。paintEvent可能更好,但它更复杂http://zetcode.com/gui/pyqt4/drawing/示例,http://pyqt.sourceforge.net/Docs/PyQt4/qpainter.html是类引用。我在下面写了一个例子
相关问题 更多 >
编程相关推荐