MarbleWidget с поддержкой Qt5 - пример кода больше не работает правильно - PullRequest
0 голосов
/ 26 января 2020

Я пишу морское навигационное приложение. Я новичок Qt5 и Marble ie, но это работало так хорошо, пока я не попал в этот блок.

Он использует MarbleWidget как способ отображения выходных данных из приложения, тщательно смоделированный на примере приложения, поставляемого с Marble.

Когда я перенес это в Qt5 в последних выпусках (opensuse), 5.14.0, он перестал работать правильно - он больше не будет выходить из приложения, нажав кнопку x в правом верхнем углу окна. строка заголовка.

Это поведение демонстрируется также примером кода, поставляемого вместе с Marble.

Вот пример приложения:

#include <QtWidgets/QApplication>
#include <marble/MarbleWidget.h>
#include <marble/GeoPainter.h>

using namespace Marble;

class MyMarbleWidget : public MarbleWidget
{
public:
    virtual void customPaint(GeoPainter* painter);
};

void MyMarbleWidget::customPaint(GeoPainter* painter)
{
    GeoDataCoordinates home(8.4, 49.0, 0.0, GeoDataCoordinates::Degree);
    painter->setPen(Qt::green);
    painter->drawEllipse(home, 7, 7);
    painter->setPen(Qt::black);
    painter->drawText(home, "Hello Marble!");
}

int main(int argc, char** argv)
{
    QApplication app(argc,argv);
    MyMarbleWidget *mapWidget = new MyMarbleWidget;
    mapWidget->setMapThemeId("earth/openstreetmap/openstreetmap.dgml");
    mapWidget->show();
    return app.exec();
}

и мой Makefile:

all: pre bld post

bld: quick_marble.x

quick_marble.x : quick_marble.cpp
    g++ -g -fpic -I /usr/include/qt5/ -I/usr/include/qt5/QtWidgets \
        -I/usr/include/qt5/QtGui \
        -I/usr/include/qt5/QtCore \
        -o quick_marble.x \
        quick_marble.cpp \
        -L/usr/local/lib64 -lmarblewidget-qt5 -lQt5Core -lQt5Widgets -lQt5Gui

pre :
    rm -f *.x
    rm -f *.list

post : 
    ldd quick_marble.x >quick_marble.modules.list
    echo all done

Я пробовал обходные пути, но, похоже, ничего не решило эту проблему.

Я разместил вопрос на мраморном форуме, но он не рассматривался в течение нескольких месяцев.

Любые идеи для продвижения вперед будут полезны.

...