Hi,
I have created working cross compile environment to my linux mint laptop. I was able to deploy
simple helloworld app to my rpi. Now I have tried to get teapot example to work, but no luck.
Teapot qt example is here:
“http://doc-snapshot.qt-project.org/qt3d-1.0/qt3d-teapot.html”
There is something wrong with my teapotview constructor, but I don’t now what it is..
Does anyone know what is the problem, I have run out of ideas here?
Error print:
In file included from ../qt5-raspberrypi-example/main.cpp:2:0:
../qt5-raspberrypi-example/teapotview.h: In constructor 'TeapotView::TeapotView(QWidget*)':
../qt5-raspberrypi-example/teapotview.h:13:65: error: no matching function for call to 'QGLView::QGLView(QWidget*&)'
../qt5-raspberrypi-example/teapotview.h:13:65: note: candidates are:
In file included from /mnt/rasp-pi-rootfs/usr/local/qt5pi/include/Qt3D/QGLView:1:0,
from ../qt5-raspberrypi-example/teapotview.h:4,
from ../qt5-raspberrypi-example/main.cpp:2:
/mnt/rasp-pi-rootfs/usr/local/qt5pi/include/Qt3D/qglview.h:63:14: note: QGLView::QGLView(const QSurfaceFormat&, QWindow*)
/mnt/rasp-pi-rootfs/usr/local/qt5pi/include/Qt3D/qglview.h:63:14: note: no known conversion for argument 1 from 'QWidget*' to 'const QSurfaceFormat&'
/mnt/rasp-pi-rootfs/usr/local/qt5pi/include/Qt3D/qglview.h:62:14: note: QGLView::QGLView(QWindow*)
/mnt/rasp-pi-rootfs/usr/local/qt5pi/include/Qt3D/qglview.h:62:14: note: no known conversion for argument 1 from 'QWidget*' to 'QWindow*'
/mnt/rasp-pi-rootfs/usr/local/qt5pi/include/Qt3D/qglview.h:58:21: note: QGLView::QGLView(const QGLView&)
/mnt/rasp-pi-rootfs/usr/local/qt5pi/include/Qt3D/qglview.h:58:21: note: no known conversion for argument 1 from 'QWidget*' to 'const QGLView&'
make: *** [main.o] Error 1
Here is my code and pro file:
main.cpp
#include <Qt/qapplication.h>
#include "teapotview.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
TeapotView view;
if (view.stereoType() != QGLView::RedCyanAnaglyph)
view.camera()->setEyeSeparation(0.3f);
if (QApplication::arguments().contains(QLatin1String("-maximize")))
view.showMaximized();
else if (QApplication::arguments().contains(QLatin1String("-fullscreen")))
view.showFullScreen();
else
view.show();
return app.exec();
}
teapotview.h:
#ifndef TEAPOTVIEW_H
#define TEAPOTVIEW_H
#include <Qt3D/QGLView>
#include <Qt3D/QGLTeapot>
class QGLSceneNode;
class TeapotView : public QGLView
{
Q_OBJECT
public:
TeapotView(QWidget *parent = 0) : QGLView(parent), teapot(0) {}
~TeapotView();
protected:
void initializeGL(QGLPainter *painter);
void paintGL(QGLPainter *painter);
private:
QGLSceneNode *teapot;
};
#endif // TEAPOTVIEW_H
teapotview.cpp
#include "teapotview.h"
#include <Qt3D/QGLBuilder>
#include <Qt3D/QGLSceneNode>
void TeapotView::initializeGL(QGLPainter *painter)
{
painter->setStandardEffect(QGL::LitMaterial);
QGLBuilder builder;
builder << QGLTeapot();
teapot = builder.finalizedSceneNode();
}
TeapotView::~TeapotView()
{
delete teapot;
}
void TeapotView::paintGL(QGLPainter *painter)
{
teapot->draw(painter);
}
helloworld.pro
TEMPLATE = app
target.path = /home/pi/teapot
TARGET = teapot
INSTALLS += target
DEPENDPATH += .
INCLUDEPATH += .
SOURCES += main.cpp \
teapotview.cpp
HEADERS += \
teapotview.h
CONFIG += qt qwidgets warn-on qt3d_deploy_pkg
OTHER_FILES += \
teapot.rc \
teapot.desktop
RC_FILE = teapot.rc
INCLUDEPATH += /mnt/rasp-pi-rootfs/usr/local/qt5pi/include/
qml_folder.source = qml
DEPLOYMENTFOLDERS = qml_folder
for(deploymentfolder, DEPLOYMENTFOLDERS) {
item = item$${deploymentfolder}
itemsources = $${item}.sources
$$itemsources = $$eval($${deploymentfolder}.source)
itempath = $${item}.path
$$itempath= $$eval($${deploymentfolder}.target)
export($$itemsources)
export($$itempath)
DEPLOYMENT += $$item
}
installPrefix = /home/pi/$${TARGET}
for(deploymentfolder, DEPLOYMENTFOLDERS) {
item = item$${deploymentfolder}
itemfiles = $${item}.files
$$itemfiles = $$eval($${deploymentfolder}.source)
itempath = $${item}.path
$$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target)
export($$itemfiles)
export($$itempath)
INSTALLS += $$item
}
↧