Почему Ubuntu.Components 0.1 отсутствует в QTCreator?

13

Прежде всего мне нужно создать приложение "hello world" с использованием QML & QT Creator, как описано здесь http://developer.ubuntu.com/get-started/gomobile/

Во-вторых, когда я пытался установить платформу QML и зависимости, я не смог запустить шаг 2 («Предварительный просмотр Ubuntu QML toolkit»), потому что у меня есть дистрибутив (backbox), основанный на Ubuntu 12.04, но я решил его, выполнив следующие действия: инструкции этого поста: /ubuntu/235440/how-do-i-install-the-qml-toolkit-on-12-04

В-третьих, когда я открываю QTCreator и пытаюсь запустить CurrencyConverter (приложение helloWorld), программа не может найти следующие пакеты:

import Ubuntu.Components 0.1

Что я могу сделать, чтобы запустить приложение?

заранее спасибо.

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
       }
    }
}
CodeArtist
источник
Не могли бы вы добавить больше информации? Как вы на самом деле выполняете приложение? Запускается ли приложение, если вы запускаете его из командной строки? Вы уверены, что выполнили следующий бит команды установки на начальном этапе? echo 'export PATH=/opt/qt5/bin:$PATH' >> ~/.bashrc
Дэвид Планелла
привет да конечно ... я просто копирую и вставляю команды. На 100% уверен, что это правильно, поэтому первый и второй шаг выполнены. После этого я открыл QTCreator и следовал инструкциям третьего шага выше. Когда я вставил приведенный выше код, строка «import Ubuntu.Components 0.1» была выделена, и там говорилось: «Модуль QML не найден. Пути импорта: / usr / lib / qt4 / import». Обратите внимание, что я не использую Ubuntu, а дистрибутив на основе Ubuntu 12.04. Разница лишь в том, что есть xfce4, а не единицы.
CodeArtist
@DavidPlanella Я на 12.10 и испытываю то же самое. Я скопировал + вставил обе команды, и все, казалось, прошло хорошо. В QtCreator с примером - CurrenyConverter.qml: 2: 1: модуль «Ubuntu.Components» не установлен (я также получил такую ​​же ошибку для QtQuick 2.0). echo $ 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
Трент
@JorgeCode, вы описываете, как я полагаю, предупреждение в Qt Creator, которое не должно останавливать выполнение кода. Как уже было сказано выше, появляется ли сообщение об ошибке при запуске приложения qmlsceneиз командной строки, как описано в руководстве? Если да, каков точный вывод в командной строке?
Дэвид Планелла
@DavidPlanella, я также получаю ту же ошибку, и это код, который я получаю из терминала или Qt Creator, когда я завершил компиляцию. paste.ubuntu.com/1658717 и я получаю красную линию при импорте Ubuntu.Components 0.1. Что я должен сделать сейчас.
13

Ответы:

3

Я нашел решение хотя бы для Ubuntu 12.04. Мне пришлось перейти на официальный сайт http://qt-project.org/downloads#qt-creator и скачать последний пакет Qt, который является Qt 5.0.0.

* Примечание : Ubuntu 12.04 не включает в себя последнюю версию Qt, поэтому вы должны загрузить ее вручную.

* Примечание : перед установкой я удалил предыдущую версию QtCreator (2.5.0)

Все, что вам нужно сделать для установки пакета Qt5:

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

Затем просто запустите пакет и запустите установщик с настройками по умолчанию.

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

  • Теперь должен существовать /opt/qt5/imports/Ubuntu/Componentsпуть со всеми библиотеками!

После этого я следовал инструкциям CurrencyConverter

* Обратите внимание, что строка: import Ubuntu.Components 0.1 по-прежнему выделяется красной линией, но программа работает нормально, выбрав Tools > External > Qt Quick > Preview (qmlviewer)(благодаря @David Planella)

CodeArtist
источник
Эта красная линия отвлекает перфекциониста, такого как я. Любой способ исправить то, что вызывает это?
Джентльмен
0

На самом деле вы можете перейти к параметрам -> построить и запустить -> версии qt (у меня есть польская версия, поэтому мне пришлось перевести ее обратно на английский - извините, если имена немного отличаются). Затем вы добавляете последнюю версию qt, которую вы уже установили - она ​​в /opt/qt5/bin.

Tomasz
источник
0

Если вы правильно установили QT5 и все еще import Ubuntu.Components 0.1выделены, вы должны сделать это:

  • открыть файл .qmlproject (включен в автоматически сгенерированный проект)
  • добавить этот текст: importPaths: [ "/opt/qt5/imports" ]до последнего закрытия:}

... и проблема должна исчезнуть.

kuba.murky
источник
0

Возможно, вы захотите запустить / собрать все демонстрационные версии qt, открыв файлы .pro для конкретных примеров.

chown -R yourusername /opt/qt5/examples/

Когда я решил создать пример opengl / textures, открыв файл textures.pro в qtcreator, он автоматически настроил проект, НО по умолчанию указывает на QT4. Я получил странную ошибку, которая говорит, что он не может найти QtWidgets, когда я пытался собрать с использованием qt4. С Qt5 в качестве инструмента сборки проблема ушла.

Убедитесь, что вы указали на QT5 в качестве сборки проекта для отладки / выпуска, потому что это не значение по умолчанию в qtcreator. В противном случае вы получите странные ошибки при сборке. Эту проблему легко обнаружить в выходных данных компиляции, в которых должны быть показаны пути qt5 include и qt5 libs.

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.
user123744
источник