示例#1
0
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;
}
示例#2
0
文件: MapScene.cpp 项目: h0st/core
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);
}