ошибка: «QtMobility» не является именем пространства имен - PullRequest
0 голосов
/ 18 мая 2011

Я пытаюсь скомпилировать: http://wiki.forum.nokia.com/index.php/Fetching_a_map_tile_in_Qt_using_Google_Maps

Я использую Qt-Mobility 1.2 с Qt 4.7 на OpenSuse 11.2

Я получаю следующие ошибки:

MainWindow.h:7: error: ‘QtMobility’ is not a namespace-name
MainWindow.h:7: error: expected namespace-name before ‘;’ token
MainWindow.h:10: error: expected class-name before ‘{’ token
In file included from /opt/qtsdk-2010.05/qt/include/QtCore/qcoreapplication.h:47,
                 from /opt/qtsdk-2010.05/qt/include/QtGui/qapplication.h:45,
                 from /opt/qtsdk-2010.05/qt/include/QtGui/QApplication:1,
                 from main.cpp:2:
/opt/qtsdk-2010.05/qt/include/QtCore/qeventloop.h:51: error: expected initializer before ‘QtCoreModule’
make: *** [main.o] Error 1

Мой .pro-файл содержит:

TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .

HEADERS += MainWindow.h
SOURCES += main.cpp MainWindow.cpp

QT += network
CONFIG += mobility
MOBILITY = location

Об ошибке сообщается в заголовочном файле, который я показал следующим образом:

#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkReply>
#include <QPaintEvent>
#include <QPixmap>

using namespace QtMobility;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow ();
    void paintEvent(QPaintEvent* paintEvent);

public slots:
    void handleNetworkData(QNetworkReply* reply);

private:
    void fetchMap(const QSize& size, qreal latitude, qreal longitude);

private:
    QNetworkAccessManager networkAccessManager;
    QPixmap mapPixmap;
}

Пожалуйста, руководство.

1 Ответ

2 голосов
/ 18 мая 2011

Вам понадобится как минимум один заголовок QtMobility, чтобы использовать это пространство имен.

Кроме того, объявление using namespace больше не является рекомендуемым способом. Использование:

 QTM_USE_NAMESPACE

вместо этого (см. QtMobility QuickStart ).

...