{Qt5.0. 2/QML/QtQuick2. 0 / C++} przykładowe projekty, które działają bez błędów? [zamknięte]

Moja konfiguracja to Qt5.0.2 MinGW 32-bit.

Szukam { Qt5.0.2 / QML / QtQuick2.0 / C++ } przykładów projektów kodu (nie Qt Quick 1.0), które mają rzeczywiste klasy C++ lub przynajmniej main.cpp.

Pobiegłem po sieci, przejrzałem wszystkie przykłady, które mogłem znaleźć:

Ale były albo stare ( Qt Quick 1.0) albo czyste QML+ QtQuick 2.0 albo w ogóle nie kompilowały; lub jeśli mogły kompilować, pokazywały mi puste okna dialogowe (na przykład "Status Shout! " w przykładach kodu Nokii).

Każda rada byłaby bardzo mile widziana.
Author: iviv, 2013-04-17

2 answers

W QML nie ma zbyt wielu szczegółowych zasobów, większość z nich to krótkie przykłady fragmentów i przykłady dokumentacji. Jest to problem dla ludzi, którzy są nowi w programowaniu, ponieważ takie materiały tak naprawdę nie dają pojęcia, jak ułożyć coś, co jest przydatne w praktyce.

Jest to prawdą tym bardziej dla QtQuick2, który jest zupełnie nowy, a nawet dokumentacja i wiele oficjalnych przykładów są nadal niekompletne. I wiem z zobacz, jak frustrujące jest podążanie za samouczkiem, wpisywanie wszystkiego, oczekiwanie, że zadziała i otrzymanie czegoś nieoczekiwanego, bez pojęcia, co naprawdę poszło nie tak i jak to naprawić.

Biorąc to pod uwagę, Istnieje kilka przykładów kompletnych, choć trywialnych gier, które są zaimplementowane w QtQuick1. Nie jest to zbyt duży problem, ponieważ elementy QtQuick2 są kompatybilne wstecz, a kod będzie działał z QtQuick2 z niewielkimi modyfikacjami lub bez nich w ogóle.

Oficjalne przykłady, choć czasami łamane lub niekompletne, również mogą być pomocne, plus prawdopodobnie zostaną naprawione wkrótce (najwyższy czas):

Ostatnie, ale nie mniej ważne, fragmenty QML ze strony projektu QT wiki:

EDIT: aby dodać kolejny dobry zasób do nauki QML: http://qmlbook.org

 15
Author: dtech,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-21 01:58:50

Raczej minimalnym przykładem może być:

Main.cpp

#include <QGuiApplication>
#include <QQuickView>

int main(int argc, char** argv)
{
    QGuiApplication app(argc, argv);
    QQuickView view;
    view.resize(800, 480);
    view.setResizeMode(QQuickView::SizeRootObjectToView);
    view.setSource(QUrl("qrc:///foo.qml"));
    view.show();
    return app.exec();
}

Foo.qml (tutaj dołączony jako zasób):

import QtQuick 2.0

Rectangle {
    color: "lightsteelblue"

    Text {
        anchors.centerIn: parent
        text: "Hello"
    }
}
 2
Author: Frank Osterfeld,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-17 20:16:23