Я пытаюсь создать библиотеку из этого проекта: https://github.com/brexis/qml-bootstrap, чтобы использовать все виджеты в моем приложении Qt в стиле, подобранном в стиле начальной загрузки. Однако я не понимаю, как это сделать. Должен ли я использовать опцию «Создать новую библиотеку» в Qt Creator? Как использовать существующий код в репозитории для создания библиотеки и импорта ее в мой проект? Есть ли способ буквально создать QML-библиотеку в Qt Creator? Я новичок в Qt, и я пытаюсь использовать эти виджеты, прежде чем пытаться создать свои собственные. Большое спасибо заранее!Qt - Как создать библиотеку из существующего проекта?
ответ
Просто чтобы дать вам несколько советов:
- Вам не нужно использовать «создать новую библиотеку» проект.
- Если вы работаете на Windows, все из QML плагинов расположены в следующем каталоге Qt_folder/QT_VERSION/Qt_Kit/QML - например C: /Qt/Qt5.5/msvc_2013/qml. Посмотрите на эти папки.
- Каждая «библиотека/плагин/модуль/вы называете это» имеет qmldir file. Вам нужно назвать свой модуль и описать, какие файлы включены в него. Если вы не знаете, как это сделать, см. Ссылку на документацию выше или другие плагины.
- Когда вы успешно создадите плагин, скопируйте его в папку qml для каждого комплекта, установленного в вашей системе.
- Перезагрузите Qt Creator, чтобы он загружал новый модуль и использовал его с инструкцией «import» в qml
- Будьте особенно осторожны при развертывании - когда вы хотите скопировать свое рабочее приложение на другой компьютер. Если вы используете windeployqt.exe, он должен обнаружить, что проект использует ваш модуль и добавляет его. В случае, если это не работает, вам нужно просто скопировать папку из вас модуля (с qmldir и все другие файлы) и поместить его рядом с исполняемым файлом
То, что вы хотите достичь заменяет эти строки (из примера main.qml):
import "src/lists"
import "src/bars"
import "src/buttons"
import "src/variables/fontawesome.js" as FontAwesome
с чем-то вроде этого:
import QmlBootstrap 1.0
Я надеюсь, что это помогает. Просто спросите что-нибудь, если вы все еще не уверены.
Это действительно просто:
- Найти QML папку в вашей системе. Это должно быть примерно C: /Qt/5.5/msvc_2013/qml.
- В qml папка создать каталог QmlBootstrap. Если вы хотите, вы можете назвать его, как хотите. Затем в коде вы будете использовать его следующим образом:
import dir_name 1.0
. - Скачать QML-самозагрузки и скопировать все файлы в ЦСИ папки в новую папку в QML папки.
- Создать новый файл в QML папку, назовите его qmldir и записать его в файл:
# bars
Bar 1.0 bars/Bar.qml
ButtonBar 1.0 bars/ButtonBar.qml
# buttons
ButtonDefault 1.0 buttons/ButtonDefault.qml
# cards
Card 1.0 cards/Card.qml
# content
TextContent 1.0 content/TextContent.qml
# examples
AvatarListPage 1.0 examples/AvatarListPage.qml
ButtonBarPage 1.0 examples/ButtonBarPage.qml
ButtonPage 1.0 examples/ButtonPage.qml
CardPage 1.0 examples/CardPage.qml
DefaultListPage 1.0 examples/DefaultListPage.qml
IconListPage 1.0 examples/IconListPage.qml
ThumbnailListPage 1.0 examples/ThumbnailListPage.qml
# fonts
# fontawesome-webfont.ttf
# js
Helper 1.0 js/helper.js
# lists
AvatarListView 1.0 lists/AvatarListView.qml
DefaultListView 1.0 lists/DefaultListView.qml
IconListView 1.0 lists/IconListView.qml
List 1.0 lists/List.qml
ThumbnailListView 1.0 lists/ThumbnailListView.qml
# styles
AvatarListViewStyle 1.0 styles/AvatarListViewStyle.qml
CardStyle 1.0 styles/CardStyle.qml
DefaulListViewStyle 1.0 styles/DefaulListViewStyle.qml
IconListViewStyle 1.0 styles/IconListViewStyle.qml
ListDividerStyle 1.0 styles/ListDividerStyle.qml
ThumbnailListViewStyle 1.0 styles/ThumbnailListViewStyle.qml
TouchClearStyle 1.0 styles/TouchClearStyle.qml
TouchOutlineStyle 1.0 styles/TouchOutlineStyle.qml
TouchStyle 1.0 styles/TouchStyle.qml
# variables
Badges 1.0 variables/badges.js
Bars 1.0 variables/bars.js
Base 1.0 variables/base.js
Buttons 1.0 variables/buttons.js
Colors 1.0 variables/colors.js
FontAwesome 1.0 variables/fontawesome.js
Items 1.0 variables/items.js
Теперь перезапустите Qt Creator, и вы будете иметь возможность использовать все компоненты qml-bootstrap просто написав import QmlBootstrap 1.0
. Например, попробуйте создать новый проект, замените по умолчанию main.qml с этим main.qml и измените импорт, как я предложил выше. Если вы хотите использовать собственный шрифт, вам нужно добавить его самостоятельно в проект. Он не может быть частью плагина. Таким образом, вы получите ошибку, пытаясь запустить этот main.qml. Чтобы заставить это работать, просто добавьте любой шрифт, который вы хотите к проекту (добавьте его в файл qrc), и исправьте эту строку FontLoader{ source: "qrc:/src/fonts/fontawesome-webfont.ttf"}
, чтобы свойство source
указывало на ваш шрифт.
Еще одна вещь. main.qml, к сожалению, не работает только из коробки. Причина? Он использует компоненты, специально загруженные из файла. Это не будет работать, так как у вас не будет доступа к файлам в вашем проекте.
Здесь может быть изменен main.qml, который будет работать.
import QtQuick 2.3
import QtQuick.Controls 1.2
import QmlBootstrap 1.0
ApplicationWindow {
visible: true
width: 800
height: 1280
// FontLoader{ source: "qrc:/src/fonts/fontawesome-webfont.ttf"}
Rectangle {
anchors.fill: parent
}
toolBar: Bar{
id: titleBar
leftComponent: Component{
ButtonDefault{
class_name: "bar dark clear"
text: "Back"
icon: FontAwesome.icons.fa_angle_left
opacity: stackView.depth > 1 ? 1 : 0
visible: opacity ? true : false
Behavior on opacity { NumberAnimation{} }
onClicked: {
stackView.pop()
titleBar.title = "Qml Bootstrap Demo"
}
}
}
class_name: "header"
title: "Qml Bootstrap Demo"
}
ListModel {
id: pageModel
ListElement {
text: "Buttons Demo"
componentIndex: 0
}
ListElement {
text: "ListView Demo"
componentIndex: 1
}
ListElement {
text: "ListView with icon Demo"
componentIndex: 2
}
ListElement {
text: "Avatar ListView Demo"
componentIndex: 3
}
ListElement {
text: "Thumnail ListView Demo"
componentIndex: 4
}
ListElement {
text: "Button bar Demo"
componentIndex: 5
}
ListElement {
text: "Card"
componentIndex: 6
}
}
property var components: [
buttonPage, defaultListPage, iconListPage,
avatarListPage, thumbnailListPage, buttonBarPage,
cardPage
]
Component {id: buttonPage; ButtonPage{} }
Component {id: defaultListPage; DefaultListPage{} }
Component {id: iconListPage; IconListPage{} }
Component {id: avatarListPage; AvatarListPage{} }
Component {id: thumbnailListPage; ThumbnailListPage{} }
Component {id: buttonBarPage; ButtonBarPage{} }
Component {id: cardPage; CardPage{} }
StackView {
id: stackView
anchors.fill: parent
focus: true
Keys.onReleased: if (event.key === Qt.Key_Back && stackView.depth > 1) {
stackView.pop();
event.accepted = true;
}
initialItem: Item {
width: parent.width
height: parent.height
DefaultListView{
model: pageModel
anchors.fill: parent
onItemClicked: {
stackView.push(components[item.componentIndex])
titleBar.title = item.text
}
}
}
}
statusBar: Bar{
class_name: "footer calm"
title: "Powered by Brexis and Kamhix"
}
}
Я знаю, что это очень плохой дизайн, но это всего лишь попытка сделать main.qml работы с нашим свежим плагин. Суть в том, что вы можете сделать qml-bootstrap плагином, и все его компоненты будут доступны для использования.
- 1. Xcode4 Создать статическую библиотеку из существующего проекта
- 2. Как создать статическую библиотеку из проекта Xcode?
- 3. Создать библиотеку модулей Android из существующего источника
- 4. как создать библиотеку DLL проекта
- 5. Создать dll из существующего проекта mfc
- 6. Создать файл войны из существующего проекта maven
- 7. Невозможно создать архетип из существующего проекта maven
- 8. Создать проект из существующего проекта Netbeans
- 9. Добавление существующего проекта Qt Creator в Git
- 10. Как создать версию SVN поверх существующего проекта?
- 11. Qt UI для существующего проекта C++
- 12. Как создать Makefile для существующего проекта
- 13. Создание нового проекта Xcode из существующего проекта
- 14. Как создать Gradle для существующего проекта IDEA?
- 15. Преобразование qt-проекта в библиотеку многократного использования
- 16. Вызов проекта Qt из другого проекта Qt
- 17. Используя библиотеку Qt из программы C
- 18. Как создать приложение Adobe Air из существующего проекта FLASH8?
- 19. Как создать проект git из существующего проекта maven в Eclipse?
- 20. Как создать проект Xcode из уже существующего проекта git cmake?
- 21. Как создать банку библиотеки GWT из существующего проекта GWT?
- 22. Как создать контейнер-докер из существующего проекта на Ubuntu
- 23. Как создать общую библиотеку Qt для приложения, отличного от Qt
- 24. Как создать gtest статическую библиотеку из моего проекта CMakeLists.txt?
- 25. Файлы Gitignore из существующего проекта
- 26. Как создать библиотеку из boost?
- 27. TFS-ветвь из существующего проекта
- 28. создать и использовать общую библиотеку с qt
- 29. Как создать god-подмодуль из существующего каталога?
- 30. Как создать статическую библиотеку существующего проекта в объекте-c (.a-файл)?
Благодарим вас, @Filip Hazubski. То, что вы сказали, очень helfpul, но все же я не понимаю, должен ли я буквально вставить код src из GitHub в каталог qml/и просто создать файл qmldir в папке или если я действительно должен создать какой-то плагин (используя Qt Creator). – spine
@coding_brainfart Просто создайте новый каталог в qml-папке, поместите их qmldir и скопируйте все необходимые файлы. Не нужно использовать Qt Creator. Я постараюсь сделать это и дать вам более конкретные инструкции. –
@coding_brainfart Я обновил свой ответ. Теперь все должно быть понятно :) –