void MainWindow::valueChanged(QtProperty *property, const QColor &value) { if (!propertyToId.contains(property)) return; if (!currentItem) return; QString id = propertyToId[property]; if (id == QLatin1String("color")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Text) { QtCanvasText *i = (QtCanvasText *)currentItem; i->setColor(value); } } else if (id == QLatin1String("brush")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Rectangle || currentItem->rtti() == QtCanvasItem::Rtti_Ellipse) { QtCanvasPolygonalItem *i = (QtCanvasPolygonalItem *)currentItem; QBrush b = i->brush(); b.setColor(value); i->setBrush(b); } } else if (id == QLatin1String("pen")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Rectangle || currentItem->rtti() == QtCanvasItem::Rtti_Line) { QtCanvasPolygonalItem *i = (QtCanvasPolygonalItem *)currentItem; QPen p = i->pen(); p.setColor(value); i->setPen(p); } } canvas->update(); }
QtCanvasItem *MainWindow::addRectangle() { QtCanvasPolygonalItem *item = new QtCanvasRectangle(rand() % canvas->width(), rand() % canvas->height(), 50, 50, canvas); int z = rand() % 256; item->setBrush(QColor(rand() % 32 * 8, rand() % 32 * 8, rand() % 32 * 8)); item->setPen(QPen(QColor(rand() % 32*8, rand() % 32*8, rand() % 32*8), 4)); item->setZ(z); item->show(); return item; }
void MainWindow::valueChanged(QtProperty *property, const QVariant &value) { if (!propertyToId.contains(property)) return; if (!currentItem) return; QString id = propertyToId[property]; if (id == QLatin1String("xpos")) { currentItem->setX(value.toDouble()); } else if (id == QLatin1String("ypos")) { currentItem->setY(value.toDouble()); } else if (id == QLatin1String("zpos")) { currentItem->setZ(value.toDouble()); } else if (id == QLatin1String("text")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Text) { QtCanvasText *i = (QtCanvasText *)currentItem; i->setText(qVariantValue<QString>(value)); } } else if (id == QLatin1String("color")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Text) { QtCanvasText *i = (QtCanvasText *)currentItem; i->setColor(qVariantValue<QColor>(value)); } } else if (id == QLatin1String("brush")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Rectangle || currentItem->rtti() == QtCanvasItem::Rtti_Ellipse) { QtCanvasPolygonalItem *i = (QtCanvasPolygonalItem *)currentItem; QBrush b = i->brush(); b.setColor(qVariantValue<QColor>(value)); i->setBrush(b); } } else if (id == QLatin1String("pen")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Rectangle || currentItem->rtti() == QtCanvasItem::Rtti_Line) { QtCanvasPolygonalItem *i = (QtCanvasPolygonalItem *)currentItem; QPen p = i->pen(); p.setColor(qVariantValue<QColor>(value)); i->setPen(p); } } else if (id == QLatin1String("font")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Text) { QtCanvasText *i = (QtCanvasText *)currentItem; i->setFont(qVariantValue<QFont>(value)); } } else if (id == QLatin1String("endpoint")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Line) { QtCanvasLine *i = (QtCanvasLine *)currentItem; QPoint p = qVariantValue<QPoint>(value); i->setPoints(i->startPoint().x(), i->startPoint().y(), p.x(), p.y()); } } else if (id == QLatin1String("size")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Rectangle) { QtCanvasRectangle *i = (QtCanvasRectangle *)currentItem; QSize s = qVariantValue<QSize>(value); i->setSize(s.width(), s.height()); } else if (currentItem->rtti() == QtCanvasItem::Rtti_Ellipse) { QtCanvasEllipse *i = (QtCanvasEllipse *)currentItem; QSize s = qVariantValue<QSize>(value); i->setSize(s.width(), s.height()); } } canvas->update(); }