static QGraphicsProxyWidget *createItem(const QSizeF &minimum = QSizeF(100.0, 100.0), const QSizeF &preferred = QSize(150.0, 100.0), const QSizeF &maximum = QSizeF(200.0, 100.0), const QString &name = "0") { QGraphicsProxyWidget *w = new QGraphicsProxyWidget; w->setWidget(new QPushButton(name)); w->setData(0, name); w->setMinimumSize(minimum); w->setPreferredSize(preferred); w->setMaximumSize(maximum); w->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); return w; }
void MapScene::addMark(qreal latitude, qreal longitude, QVariant data, QWidget * widget) { //NOTE: Need to be refactored for use with marks AS WIDGETS! QGraphicsProxyWidget * mark = this->addWidget(widget); widget->show(); QPointF mark_point = OSMCoordinatesConverter::GeoToTile(latitude, longitude, this->m_zoom); mark_point.setX(mark_point.x()*256.0); mark_point.setY(mark_point.y()*256.0); mark->setX(mark_point.x()); mark->setY(mark_point.y()); mark->setData(0,data); this->views()[0]->centerOn(mark_point); }