Czy w systemie Ubuntu 13.10 są dostępne szybkie kontrole Qt?


8

Chciałem opracować interfejs użytkownika w języku QML i naprawdę chcę, aby wyglądał natywnie. Znalazłem QtQuick.Controls ( http://qt-project.org/doc/qt-5.1/qtquickcontrols/qtquickcontrols-index.html ), ale kiedy próbuję stworzyć prostą aplikację, mówi mi, że QtQuick.Controls nie jest t zainstalowany.

main.qml:

import QtQuick 2.1
import QtQuick.Controls 1.0

Rectangle {
    height: 200
    width: 200
}

terminal:

$ qmlscene main.qml
file:///tmp/main.qml:2 module "QtQuick.Controls" is not installed

Pobrałem również źródło z https://qt.gitorious.org/qt/qtquickcontrols/source/stable , uruchomiłem qmake && make, ale to zwróciło następujące dane wyjściowe:

cd src/ && ( test -e Makefile || /usr/lib/i386-linux-gnu/qt5/bin/qmake /tmp/qtquickcontrols/src/src.pro -o Makefile ) && make -f Makefile 
make[1]: Går til katalog '/tmp/qtquickcontrols/src'
cd controls/ && ( test -e Makefile || /usr/lib/i386-linux-gnu/qt5/bin/qmake /tmp/qtquickcontrols/src/controls/controls.pro -o Makefile ) && make -f Makefile 
make[2]: Går til katalog '/tmp/qtquickcontrols/src/controls'
g++ -c -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -O2 -fvisibility=hidden -fvisibility-inlines-hidden -std=c++0x -fno-exceptions -Wall -W -D_REENTRANT -fPIC -DQT_NO_XKB -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_QUICK_LIB -DQT_QML_LIB -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt5/mkspecs/linux-g++ -I. -I/usr/include/qt5 -I/usr/include/qt5/QtQuick -I/usr/include/qt5/QtQml -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtGui/5.1.1 -I/usr/include/qt5/QtGui/5.1.1/QtGui -I/usr/include/qt5/QtCore -I/usr/include/qt5/QtCore/5.1.1 -I/usr/include/qt5/QtCore/5.1.1/QtCore -I.moc/release-shared -o .obj/release-shared/qquickaction.o qquickaction.cpp
qquickaction.cpp:49:39: fatal error: private/qguiapplication_p.h: No such file or directory
 #include <private/qguiapplication_p.h>
                                       ^

Czy jest jakiś PPA, którego mógłbym użyć, czy też muszę czekać, aż Trusty wyjdzie, zanim będę mógł używać natywnych kontrolek z Qt? pozdrowienia

Odpowiedzi:


6

Szybkie kontrole Qt są dostępne od Qt 5.1, a wersja Qt 5 w repozytoriach Ubuntu to Qt 5.0.2. W związku z tym nie można używać szybkich kontrolek Qt z bieżącą wersją Qt5 w repozytoriach Ubuntu.

Jeśli chcesz ich użyć, masz 3 opcje:

  • Korzystanie z oficjalnych pakietów Qt Project dla systemu Linux. Możesz je pobrać tutaj .
  • Oczekiwanie na wersję Ubuntu, której wersja Qt5 to co najmniej Qt 5.1. Trusty Tahr prawdopodobnie będzie miał w swoich repozytoriach Qt 5.1 lub Qt 5.2.
  • Jeśli tworzysz coś dla Ubuntu, możesz użyć składników, które są w Ubuntu SDK. Ubuntu.Components(to ich nazwa) nie są prawdziwymi Szybkimi Kontrolami Qt, ale są bardzo podobne i jeśli wiesz, jak Ubuntu.Componentsdziała, będziesz wiedział, jak działają Szybkie Kontrolki Qt. Aby uzyskać więcej informacji, spójrz na odpowiednią stronę w Ubuntu Developer .

Myślę, że wybiorę twoją pierwszą opcję. Wiem, że istnieją Ubuntu.Components, ale są one bardzo zorientowane na dotyk. Ale dziękuję bardzo za szybką i przydatną odpowiedź
LinuxStudent

Dobry wybór. Pakiety Qt Project to najlepszy sposób na uzyskanie najnowszej wersji Qt i Qt Creatora.
air-dex

Cóż, byłoby łatwiej, gdyby znajdowały się one tylko w repozytoriach Ubuntu, ale masz rację, prawie wszystko jest najlepsze, gdy dostajesz od twórcy, nie kończyć od zewnętrznego dystrybutora
LinuxStudent

@ air-dex Obecnie korzystam z Trusty, ale nie mam dostępu do QtQuick.Controls. Co może być problemem? Dodałem ubuntu-sdk-team/ppai canonical-qt5-edgers/qt5-properPPA, ale bez radości :(
Jonah

@Jonah, czy zainstalowałeśqtdeclarative5-controls-plugin
andrewsomet
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.