Warum fehlt Ubuntu.Components 0.1 in QTCreator?


13

Zuerst muss ich eine "Hallo Welt" App mit QML & QT Creator erstellen, wie hier beschrieben http://developer.ubuntu.com/get-started/gomobile/

Zweitens, als ich versuchte, die QML-Plattform und die Abhängigkeiten zu installieren, konnte ich Schritt 2 (von "Installieren der Ubuntu QML-Toolkit-Vorschau") nicht ausführen, da ich eine Distribution (Backbox) auf der Basis von Ubuntu 12.04 habe, aber ich löse es, indem ich folge die Anweisungen dieses Beitrags: /ubuntu/235440/how-do-i-install-the-qml-toolkit-on-12-04

Drittens, wenn ich QTCreator öffne und versuche CurrencyConverter (helloWorld App) auszuführen , kann das Programm die folgenden Pakete nicht finden:

import Ubuntu.Components 0.1

Was kann ich tun, um die App auszuführen?

Danke im Voraus.

import QtQuick 2.0
import Ubuntu.Components 0.1

Rectangle {
    id: root
    width: units.gu(60)
    height: units.gu(80)
    color: "lightgray"

    property real margins: units.gu(2)
    property real buttonWidth: units.gu(9)

    Label {
       id: title
       ItemStyle.class: "title"
       text: i18n.tr("Currency Converter")
       height: contentHeight + root.margins
       anchors {
           left: parent.left
           right: parent.right
           top: parent.top
       }
    }
}

Könnten Sie bitte weitere Informationen hinzufügen? Wie führen Sie die App aus? Läuft die App, wenn Sie sie über die Befehlszeile ausführen? Sind Sie sicher, dass Sie im ersten Schritt das folgende Bit des Installationsbefehls ausgeführt haben? echo 'export PATH=/opt/qt5/bin:$PATH' >> ~/.bashrc
David Planella

hi, ja natürlich ... ich kopiere einfach die befehle und füge sie ein. Ist 100% sicher, dass dies korrekt ist, so sind der erste und der zweite Schritt erledigt. Danach öffnete ich den QTCreator und folgte den Anweisungen des dritten Schritts oben. Beim Einfügen des obigen Codes wurde die Zeile "Ubuntu.Components 0.1 importieren" markiert und es wurde "QML-Modul nicht gefunden. Importpfade: / usr / lib / qt4 / exports" angezeigt. Bitte beachten Sie, dass ich kein Ubuntu verwende, sondern eine Distribution, die auf Ubuntu 12.04 basiert. Der einzige Unterschied ist, dass xfce4 und nicht die Einheit ist.
CodeArtist

@DavidPlanella Ich bin am 12.10 und erlebe das selbe. Ich habe beide Befehle kopiert und eingefügt und alles schien gut gelaufen zu sein. In QtCreator mit dem Beispiel - CurrenyConverter.qml: 2: 1: Modul "Ubuntu.Components" ist nicht installiert (ich habe auch den gleichen Fehler für QtQuick 2.0). Geben Sie $ PATH / opt / qt5 / bin: / usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games
trent

@JorgeCode, was Sie beschreiben, ist meiner Meinung nach eine Warnung in Qt Creator, die die Ausführung des Codes nicht stoppen sollte. Erhalten Sie, wie oben beschrieben, eine Fehlermeldung, wenn Sie Ihre App über qmlscenedie Befehlszeile ausführen , wie im Lernprogramm beschrieben? Wenn ja, wie lautet die genaue Ausgabe in der Befehlszeile?
David Planella

@ DavidPlanella, ich erhalte auch den gleichen Fehler und dies ist der Code, den ich vom Terminal oder Qt Creator erhalte, wenn ich mit dem Kompilieren fertig bin. paste.ubuntu.com/1658717 und ich erhalte die rote Linie beim Import von Ubuntu.Components 0.1. Was muss ich jetzt tun.
Donnerstag,

Antworten:


3

Ich habe die Lösung zumindest für Ubuntu 12.04 herausgefunden. Ich musste auf die offizielle Seite http://qt-project.org/downloads#qt-creator gehen und das neueste Qt-Paket herunterladen, nämlich Qt 5.0.0.

* Hinweis : Ubuntu 12.04 enthält nicht die neueste Qt-Version. Sie müssen sie daher manuell herunterladen.

* Hinweis : Vor der Installation habe ich die vorherige Version von QtCreator (2.5.0) entfernt.

Alles, was Sie tun müssen, um das Qt5-Paket zu installieren, ist:

  • chmod 755 qt-linux-opensource-5.0.0-x86_64-offline.run

Führen Sie dann einfach das Paket aus und führen Sie das Installationsprogramm mit den Standardeinstellungen aus.

  • ./qt-linux-opensource-5.0.0-x86_64-offline.run

  • Jetzt sollte der /opt/qt5/imports/Ubuntu/ComponentsPfad mit allen Bibliotheken existieren!

Danach folgte ich den Anweisungen des CurrencyConverters

* Beachten Sie, dass die Zeile: import Ubuntu.Components 0.1 immer noch mit einer roten Linie markiert ist, das Programm jedoch normal ausgeführt wird, indem Sie wählen Tools > External > Qt Quick > Preview (qmlviewer)(danke an @David Planella).


Diese rote Linie lenkt einen Perfektionisten wie mich ab. Gibt es eine Möglichkeit, die Ursachen zu beheben?
Djentleman

0

Sie können tatsächlich zu Optionen gehen -> Erstellen und Ausführen -> QT-Versionen (Ich habe eine polnische Version, daher musste ich sie wieder ins Englische übersetzen - sorry, wenn die Namen etwas anders sind). Dann fügen Sie die neueste Version von hinzu qt, die Sie bereits installiert haben - es ist in /opt/qt5/bin.


0

Wenn Sie QT5 ordnungsgemäß installiert haben und es immer noch import Ubuntu.Components 0.1markiert ist, sollten Sie dies tun:

  • Öffnen Sie die .qmlproject-Datei (im automatisch generierten Projekt enthalten)
  • Füge diesen Text hinzu: importPaths: [ "/opt/qt5/imports" ]vor dem letzten Abschluss:}

... und das Problem sollte weg sein.


0

Sie werden wahrscheinlich alle qt-Demos ausführen / erstellen wollen, indem Sie die .pro-Dateien für die spezifischen Beispiele öffnen.

chown -R yourusername /opt/qt5/examples/

Als ich das opengl / textures-Beispiel durch Öffnen der textures.pro-Datei in qtcreator erstellte, konfigurierte es automatisch das Projekt, ABER es zeigte standardmäßig auf QT4. Ich habe einen seltsamen Fehler erhalten, der besagte, dass es QtWidgets nicht finden konnte, als ich versuchte, mit qt4 zu bauen. Mit Qt5 als Build-Tool wurde das Problem behoben.

Stellen Sie sicher, dass Sie auf QT5 als Projekt-Build für Debug / Release verweisen, da dies nicht die Standardeinstellung in qtcreator ist. Andernfalls treten beim Erstellen merkwürdige Fehler auf. Dieses Problem ist leicht in der Kompilierungsausgabe zu erkennen, die die Pfade qt5 include und qt5 libs anzeigen sollte.

2:58:51: Running steps for project textures...
12:58:51: Starting: "/usr/bin/make" clean -w
make: Entering directory `/opt/qt5/examples/qtbase/opengl/textures-build-Desktop Release'
rm -f qrc_textures.cpp
rm -f moc_glwidget.cpp moc_window.cpp
rm -f glwidget.o main.o window.o qrc_textures.o moc_glwidget.o moc_window.o
rm -f *~ core *.core
make: Leaving directory `/opt/qt5/examples/qtbase/opengl/textures-build-Desktop-Release'
12:58:52: The process "/usr/bin/make" exited normally.
12:58:52: Configuration unchanged, skipping qmake step.
12:58:52: Starting: "/usr/bin/make" -w
make: Entering directory `/opt/qt5/examples/qtbase/opengl/textures-build-Desktop-Release'
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../../mkspecs/linux-g++-64 -I../textures -I../../../../include -I../../../../include/QtOpenGL -I../../../../include/QtWidgets -I../../../../include/QtGui -I../../../../include/QtCore -I. -I. -o glwidget.o ../textures/glwidget.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../../mkspecs/linux-g++-64 -I../textures -I../../../../include -I../../../../include/QtOpenGL -I../../../../include/QtWidgets -I../../../../include/QtGui -I../../../../include/QtCore -I. -I. -o main.o ../textures/main.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../../mkspecs/linux-g++-64 -I../textures -I../../../../include -I../../../../include/QtOpenGL -I../../../../include/QtWidgets -I../../../../include/QtGui -I../../../../include/QtCore -I. -I. -o window.o ../textures/window.cpp
/opt/qt5/bin/rcc -name textures ../textures/textures.qrc -o qrc_textures.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../../mkspecs/linux-g++-64 -I../textures -I../../../../include -I../../../../include/QtOpenGL -I../../../../include/QtWidgets -I../../../../include/QtGui -I../../../../include/QtCore -I. -I. -o qrc_textures.o qrc_textures.cpp
/opt/qt5/bin/moc -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../../mkspecs/linux-g++-64 -I../textures -I../../../../include -I../../../../include/QtOpenGL -I../../../../include/QtWidgets -I../../../../include/QtGui -I../../../../include/QtCore -I. -I. ../textures/glwidget.h -o moc_glwidget.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../../mkspecs/linux-g++-64 -I../textures -I../../../../include -I../../../../include/QtOpenGL -I../../../../include/QtWidgets -I../../../../include/QtGui -I../../../../include/QtCore -I. -I. -o moc_glwidget.o moc_glwidget.cpp
/opt/qt5/bin/moc -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../../mkspecs/linux-g++-64 -I../textures -I../../../../include -I../../../../include/QtOpenGL -I../../../../include/QtWidgets -I../../../../include/QtGui -I../../../../include/QtCore -I. -I. ../textures/window.h -o moc_window.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../../mkspecs/linux-g++-64 -I../textures -I../../../../include -I../../../../include/QtOpenGL -I../../../../include/QtWidgets -I../../../../include/QtGui -I../../../../include/QtCore -I. -I. -o moc_window.o moc_window.cpp
g++ -m64 -Wl,-O1 -Wl,-rpath,/opt/qt5/lib -o textures glwidget.o main.o window.o qrc_textures.o moc_glwidget.o moc_window.o   -L/usr/X11R6/lib64 -L/opt/qt5/lib -lQtOpenGL -lQtWidgets -lQtGui -lQtCore -lGL -lpthread 
make: Leaving directory `/opt/qt5/examples/qtbase/opengl/textures-build-Desktop-Release'
12:58:57: The process "/usr/bin/make" exited normally.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.