• 5367阅读
  • 8回复

ubuntu系统,arm-qte-4.7.0和qt creator,编译例子程序,出错 [复制链接]

上一主题 下一主题
离线sdyansong
 

只看楼主 倒序阅读 楼主  发表于: 2013-07-26
— 本帖被 gwyanping 从 Qt QML开发 移动到本区(2013-07-28) —
斑竹,您好,我是一个新学qt的菜鸟,我最近在用qml调用c++程序。网上的列子很多,可是我把网上的列子在qt里面运行时,总是出现各种各样的错误,您能给我一个简单的列子吗。不胜感谢。
离线gwyanping

只看该作者 1楼 发表于: 2013-07-26
qt不是有很多例子么?都不能运行?直接看qt自己带的例子
离线sdyansong

只看该作者 2楼 发表于: 2013-07-26
谢谢斑竹,我用的是ubuntu系统,电脑里装有arm-qte-4.7.0和qt creator软件。我不知道你说的那个例子在哪?您能和我说下吗
离线sdyansong

只看该作者 3楼 发表于: 2013-07-26
回 1楼(gwyanping) 的帖子
我从网上找了好几个例子,都不能运行
离线sdyansong

只看该作者 4楼 发表于: 2013-07-26
回 1楼(gwyanping) 的帖子
main.cpp
#include "qmlapplicationviewer.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QmlApplicationViewer viewer;
    // MyButtonItem是与QML中MyButton相对应的C++实现的类名称
    // 1,0是版本信息;MyItems是MyButton所属的模块名称
    qmlRegisterType<MyButtonItem>("MyItems", 1, 0, "MyButton");
    viewer.setOrientation(QmlApplicationViewer::Auto);
    viewer.setMainQmlFile(QLatin1String("qml/clear/main.qml"));
    viewer.show();
    return app.exec();
}
离线sdyansong

只看该作者 5楼 发表于: 2013-07-26
回 1楼(gwyanping) 的帖子
main.qml
//import Charts 1.0
import QtQuick 1.0

import Qt 4.7
import MyItems 1.0
Item {
    width: 300; height: 200
    MyButton {
        //注意:x, y, width, height是继承自item的属性,无需再自定义的item中实现
        x: 50; y: 50
        width: 200; height: 100
        color: "gray"   //自定义属性
        onMySignals:  dosth  //自定义信号mySignals
MouseArea {
anchors.fill: parent
onClicked: parent.myColor()   // 调用C++定义的方法myColor
}
    }
}
离线sdyansong

只看该作者 6楼 发表于: 2013-07-26
回 1楼(gwyanping) 的帖子

qmlapplicationviewer.h
// checksum 0x898f version 0x70013
/*
  This file was generated by the Qt Quick Application wizard of Qt Creator.
  QmlApplicationViewer is a convenience class containing mobile device specific
  code such as screen orientation handling. Also QML paths and debugging are
  handled here.
  It is recommended not to modify this file, since newer versions of Qt Creator
  may offer an updated version of it.
*/

#ifndef QMLAPPLICATIONVIEWER_H
#define QMLAPPLICATIONVIEWER_H

#include <QtDeclarative/QDeclarativeView>
#include <QDeclarativeItem>
class MyButtonItem : public QDeclarativeItem
{
    Q_OBJECT
    Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
signals:
    void colorChanged();
    void mySignals();
public:
    MyButtonItem(QDeclarativeItem *parent = 0);
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
               QWidget *widget = 0);
public:
    const QColor &color() const;
    void setColor(const QColor &newColor);
    Q_INVOKABLE QColor myColor() const;
// Alternatives for myColor to be called from QML
//public slots
    //QColor myColor() const;
private:
    QColor m_color;
};
class QmlApplicationViewer : public QDeclarativeView
{
    Q_OBJECT

public:
    enum ScreenOrientation {
        ScreenOrientationLockPortrait,
        ScreenOrientationLockLandscape,
        ScreenOrientationAuto
    };

    explicit QmlApplicationViewer(QWidget *parent = 0);
    virtual ~QmlApplicationViewer();

    static QmlApplicationViewer *create();

    void setMainQmlFile(const QString &file);
    void addImportPath(const QString &path);

    // Note that this will only have an effect on Symbian and Fremantle.
    void setOrientation(ScreenOrientation orientation);

    void showExpanded();

private:
    class QmlApplicationViewerPrivate *d;
};

QApplication *createApplication(int &argc, char **argv);

#endif // QMLAPPLICATIONVIEWER_H
离线sdyansong

只看该作者 7楼 发表于: 2013-07-26
回 1楼(gwyanping) 的帖子
上面的是我找的例子,错误是/home/love/qt-quick/clear/main.cpp:-1: In function 'int main(int, char**)':

/home/love/qt-quick/clear/main.cpp:11: 错误:'Auto' is not a member of 'QmlApplicationViewer'
我是菜鸟啊,不懂,麻烦您给看一下,谢谢啊
离线XChinux

只看该作者 8楼 发表于: 2013-07-26
楼主的标题太那个啥。。。。。
标题要简要写明问题主旨
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个