add code
This commit is contained in:
42
1DemoApp/CMakeLists.txt
Normal file
42
1DemoApp/CMakeLists.txt
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
|
project(1DemoApp VERSION 0.1 LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS Quick)
|
||||||
|
|
||||||
|
qt_standard_project_setup(REQUIRES 6.5)
|
||||||
|
|
||||||
|
qt_add_executable(app1DemoApp
|
||||||
|
main.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
qt_add_qml_module(app1DemoApp
|
||||||
|
URI 1DemoApp
|
||||||
|
VERSION 1.0
|
||||||
|
QML_FILES
|
||||||
|
Main.qml
|
||||||
|
)
|
||||||
|
|
||||||
|
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
|
||||||
|
# If you are developing for iOS or macOS you should consider setting an
|
||||||
|
# explicit, fixed bundle identifier manually though.
|
||||||
|
set_target_properties(app1DemoApp PROPERTIES
|
||||||
|
# MACOSX_BUNDLE_GUI_IDENTIFIER com.example.app1DemoApp
|
||||||
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||||
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||||
|
MACOSX_BUNDLE TRUE
|
||||||
|
WIN32_EXECUTABLE TRUE
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(app1DemoApp
|
||||||
|
PRIVATE Qt6::Quick
|
||||||
|
)
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
install(TARGETS app1DemoApp
|
||||||
|
BUNDLE DESTINATION .
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
)
|
||||||
72
1DemoApp/Main.qml
Normal file
72
1DemoApp/Main.qml
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
import QtQuick
|
||||||
|
|
||||||
|
Window {
|
||||||
|
id: rootId
|
||||||
|
width: 640
|
||||||
|
height: 480
|
||||||
|
visible: true
|
||||||
|
title: qsTr("Hello World")
|
||||||
|
property string textToShow: "hello"
|
||||||
|
// Text {
|
||||||
|
// text: "Hello World!"
|
||||||
|
// font.family: "Helvetica"
|
||||||
|
// font.pointSize: 24
|
||||||
|
// color: "red"
|
||||||
|
// anchors.centerIn: parent
|
||||||
|
// }
|
||||||
|
Row {
|
||||||
|
id: row1
|
||||||
|
anchors.centerIn: parent
|
||||||
|
spacing: 20
|
||||||
|
Rectangle {
|
||||||
|
id: redRectId
|
||||||
|
width: 100
|
||||||
|
height: 100
|
||||||
|
color: "red"
|
||||||
|
radius: 20
|
||||||
|
Text {
|
||||||
|
id: textId
|
||||||
|
anchors.centerIn: parent
|
||||||
|
text: rootId.textToShow
|
||||||
|
color: "white"
|
||||||
|
font.pointSize: 15
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
console.log(textId.text)
|
||||||
|
textToShow = "clicked"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Rectangle {
|
||||||
|
id: blueRectId
|
||||||
|
width: 100
|
||||||
|
height: 100
|
||||||
|
color: "blue"
|
||||||
|
radius: 20
|
||||||
|
}
|
||||||
|
Rectangle {
|
||||||
|
id: greenRectId
|
||||||
|
width: 100
|
||||||
|
height: 100
|
||||||
|
// radius:
|
||||||
|
color: "green"
|
||||||
|
radius: 20
|
||||||
|
}
|
||||||
|
Rectangle {
|
||||||
|
width: 100
|
||||||
|
height: 100
|
||||||
|
color: "dodgerblue"
|
||||||
|
radius: 100
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
console.log("Clicked on dodgerblue circle")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
18
1DemoApp/main.cpp
Normal file
18
1DemoApp/main.cpp
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#include <QGuiApplication>
|
||||||
|
#include <QQmlApplicationEngine>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QGuiApplication app(argc, argv);
|
||||||
|
|
||||||
|
QQmlApplicationEngine engine;
|
||||||
|
QObject::connect(
|
||||||
|
&engine,
|
||||||
|
&QQmlApplicationEngine::objectCreationFailed,
|
||||||
|
&app,
|
||||||
|
[]() { QCoreApplication::exit(-1); },
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
engine.loadFromModule("1DemoApp", "Main");
|
||||||
|
|
||||||
|
return app.exec();
|
||||||
|
}
|
||||||
42
2DemoApp/CMakeLists.txt
Normal file
42
2DemoApp/CMakeLists.txt
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
|
project(2DemoApp VERSION 0.1 LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS Quick)
|
||||||
|
|
||||||
|
qt_standard_project_setup(REQUIRES 6.5)
|
||||||
|
|
||||||
|
qt_add_executable(app2DemoApp
|
||||||
|
main.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
qt_add_qml_module(app2DemoApp
|
||||||
|
URI 2DemoApp
|
||||||
|
VERSION 1.0
|
||||||
|
QML_FILES
|
||||||
|
Main.qml
|
||||||
|
)
|
||||||
|
|
||||||
|
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
|
||||||
|
# If you are developing for iOS or macOS you should consider setting an
|
||||||
|
# explicit, fixed bundle identifier manually though.
|
||||||
|
set_target_properties(app2DemoApp PROPERTIES
|
||||||
|
# MACOSX_BUNDLE_GUI_IDENTIFIER com.example.app2DemoApp
|
||||||
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||||
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||||
|
MACOSX_BUNDLE TRUE
|
||||||
|
WIN32_EXECUTABLE TRUE
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(app2DemoApp
|
||||||
|
PRIVATE Qt6::Quick
|
||||||
|
)
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
install(TARGETS app2DemoApp
|
||||||
|
BUNDLE DESTINATION .
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
)
|
||||||
123
2DemoApp/Main.qml
Normal file
123
2DemoApp/Main.qml
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
import QtQuick
|
||||||
|
|
||||||
|
Window {
|
||||||
|
width: 640
|
||||||
|
height: 480
|
||||||
|
visible: true
|
||||||
|
title: qsTr("QML Datatypes Demo")
|
||||||
|
|
||||||
|
property string mString: "https://www.learnqt.guide"
|
||||||
|
|
||||||
|
property int mInt: 45
|
||||||
|
|
||||||
|
property bool isFemale: true
|
||||||
|
|
||||||
|
property double mDouble: 77.5
|
||||||
|
|
||||||
|
property url mUrl: "https://www.learnqt.guide"
|
||||||
|
|
||||||
|
property var aNumbre: 100
|
||||||
|
property var aBool: false
|
||||||
|
property var aString: "Hello world!"
|
||||||
|
property var anotherString: String("#FF008800")
|
||||||
|
property var aColor: Qt.rgba(0.2, 0.3, 0.4, 0.5)
|
||||||
|
property var aRect: Qt.rect(10, 10, 10, 10)
|
||||||
|
property var aPoint: Qt.point(10, 10)
|
||||||
|
property var aSize: Qt.size(10, 10)
|
||||||
|
property var aVector3d: Qt.vector3d(100, 100, 1000)
|
||||||
|
property var anArray: [1, 2, 3, "four", "five", (function(){return "six";})]
|
||||||
|
property var anObject: {"foo": 10, "bar": 20}
|
||||||
|
property var aFunction: (function() {return "one"})
|
||||||
|
|
||||||
|
property var aFont: Qt.font({family: "Consolas", pointSize: 30, bold: false})
|
||||||
|
property date mDate: "2018-07-19"
|
||||||
|
|
||||||
|
property var fonts: Qt.fontFamilies()
|
||||||
|
|
||||||
|
// Row {
|
||||||
|
// anchors.centerIn: parent
|
||||||
|
Rectangle {
|
||||||
|
id: yellowRectId
|
||||||
|
x: 300
|
||||||
|
width: 200
|
||||||
|
height: 100 + mInt
|
||||||
|
|
||||||
|
color: "yellow"
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: mTextId
|
||||||
|
font: aFont
|
||||||
|
anchors.centerIn: parent
|
||||||
|
text: mString
|
||||||
|
// font.bold: isFemale ? true : false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.left: yellowRectId.right
|
||||||
|
width: 200
|
||||||
|
height: width * 1.5
|
||||||
|
color: aColor
|
||||||
|
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: blueRectId
|
||||||
|
color: "blue"
|
||||||
|
width: 100
|
||||||
|
height: 100
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.right: yellowRectId.left
|
||||||
|
// anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
// yellowRectId.height = yellowRectId.height + 10
|
||||||
|
yellowRectId.height = Qt.binding(function() {
|
||||||
|
return yellowRectId.width + 10
|
||||||
|
})
|
||||||
|
|
||||||
|
for (var i = 0; i < fonts.length; i++) {
|
||||||
|
console.log("["+i+"]:" + fonts[i])
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(Qt.md5("123456"))
|
||||||
|
console.log("Quitting the App")
|
||||||
|
Qt.quit()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
if (mString === mUrl)
|
||||||
|
{
|
||||||
|
console.log("They are the same")
|
||||||
|
}else{
|
||||||
|
console.log("They are NOT the same")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isFemale) {
|
||||||
|
console.log("You may wear a dress")
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log("You may wear a suit")
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("The value of mInt is :"+mInt)
|
||||||
|
|
||||||
|
for(var i = 0; i < anArray.length; i++) {
|
||||||
|
if (i===5) {
|
||||||
|
console.log(anArray[i]())
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log(anArray[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("The date is: " + mDate)
|
||||||
|
}
|
||||||
|
}
|
||||||
18
2DemoApp/main.cpp
Normal file
18
2DemoApp/main.cpp
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#include <QGuiApplication>
|
||||||
|
#include <QQmlApplicationEngine>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QGuiApplication app(argc, argv);
|
||||||
|
|
||||||
|
QQmlApplicationEngine engine;
|
||||||
|
QObject::connect(
|
||||||
|
&engine,
|
||||||
|
&QQmlApplicationEngine::objectCreationFailed,
|
||||||
|
&app,
|
||||||
|
[]() { QCoreApplication::exit(-1); },
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
engine.loadFromModule("2DemoApp", "Main");
|
||||||
|
|
||||||
|
return app.exec();
|
||||||
|
}
|
||||||
42
4DemoApp/CMakeLists.txt
Normal file
42
4DemoApp/CMakeLists.txt
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
|
project(4DemoApp VERSION 0.1 LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS Quick)
|
||||||
|
|
||||||
|
qt_standard_project_setup(REQUIRES 6.5)
|
||||||
|
|
||||||
|
qt_add_executable(app4DemoApp
|
||||||
|
main.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
qt_add_qml_module(app4DemoApp
|
||||||
|
URI 4DemoApp
|
||||||
|
VERSION 1.0
|
||||||
|
QML_FILES
|
||||||
|
Main.qml MButton.qml
|
||||||
|
)
|
||||||
|
|
||||||
|
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
|
||||||
|
# If you are developing for iOS or macOS you should consider setting an
|
||||||
|
# explicit, fixed bundle identifier manually though.
|
||||||
|
set_target_properties(app4DemoApp PROPERTIES
|
||||||
|
# MACOSX_BUNDLE_GUI_IDENTIFIER com.example.app4DemoApp
|
||||||
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||||
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||||
|
MACOSX_BUNDLE TRUE
|
||||||
|
WIN32_EXECUTABLE TRUE
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(app4DemoApp
|
||||||
|
PRIVATE Qt6::Quick
|
||||||
|
)
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
install(TARGETS app4DemoApp
|
||||||
|
BUNDLE DESTINATION .
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
)
|
||||||
70
4DemoApp/MButton.qml
Normal file
70
4DemoApp/MButton.qml
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
import QtQuick
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: rootId
|
||||||
|
property alias buttonText: buttonTextId.text
|
||||||
|
width: containerRectId.width
|
||||||
|
height: containerRectId.height
|
||||||
|
|
||||||
|
signal buttonClicked
|
||||||
|
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: containerRectId
|
||||||
|
signal greet(string message)
|
||||||
|
color: "red"
|
||||||
|
border {
|
||||||
|
color: "blue"
|
||||||
|
width: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
width: buttonTextId.implicitWidth + 20
|
||||||
|
height: buttonTextId.implicitHeight + 20
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: buttonTextId
|
||||||
|
text: "MButton"
|
||||||
|
anchors.centerIn: parent
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: mouseAreaId
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
// onClicked: {
|
||||||
|
// // console.log("Clicked on button" + buttonTextId.text)
|
||||||
|
// rootId.buttonClicked()
|
||||||
|
// }
|
||||||
|
// onClicked: function(mouse) {
|
||||||
|
// console.log(mouse.x)
|
||||||
|
// }
|
||||||
|
// onClicked: (mouse_param) => console.log(mouse_param.x)
|
||||||
|
|
||||||
|
// onEntered: {
|
||||||
|
// console.log("enter")
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
onGreet: function(message) {
|
||||||
|
console.log("Greeting with message: " + message);
|
||||||
|
}
|
||||||
|
function respond_your_way(message) {
|
||||||
|
console.log("Responding our way;Greeting with message: " + message);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: mouseAreaId
|
||||||
|
function onClicked() {
|
||||||
|
// console.log("Hello")
|
||||||
|
containerRectId.greet("Hello Lenn")
|
||||||
|
}
|
||||||
|
function onDoubleClicked(mouse) {
|
||||||
|
console.log("DoubleClicked at: " + mouse.x)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
containerRectId.greet.connect(containerRectId.respond_your_way)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
69
4DemoApp/Main.qml
Normal file
69
4DemoApp/Main.qml
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
import QtQuick
|
||||||
|
|
||||||
|
Window {
|
||||||
|
width: 640
|
||||||
|
height: 480
|
||||||
|
visible: true
|
||||||
|
title: qsTr("Hello World")
|
||||||
|
|
||||||
|
// Item {
|
||||||
|
// id: containerItemId
|
||||||
|
// x: 50
|
||||||
|
// y: 50
|
||||||
|
// width: 600
|
||||||
|
// height: 300
|
||||||
|
|
||||||
|
// Rectangle {
|
||||||
|
// anchors.fill: parent
|
||||||
|
// color: "beige"
|
||||||
|
// // border.color: "black"
|
||||||
|
// // border.width: 10
|
||||||
|
// border {
|
||||||
|
// color: "black"
|
||||||
|
// width: 10
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Rectangle {
|
||||||
|
// x: 0
|
||||||
|
// y: 10
|
||||||
|
// width: 50
|
||||||
|
// height: 50
|
||||||
|
// color: "red"
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Rectangle {
|
||||||
|
// x: 60
|
||||||
|
// y: 10
|
||||||
|
// width: 50
|
||||||
|
// height: 50
|
||||||
|
// color: "green"
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Image {
|
||||||
|
// x: 150
|
||||||
|
// y:50
|
||||||
|
// width: 100
|
||||||
|
// height: 100
|
||||||
|
// // source: "qrc:/...."
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
MButton {
|
||||||
|
id: button1
|
||||||
|
buttonText: "Button1"
|
||||||
|
// color: "grey"
|
||||||
|
onButtonClicked: {
|
||||||
|
console.log("Clicked on button1")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MButton {
|
||||||
|
id: button2
|
||||||
|
anchors.top: button1.bottom
|
||||||
|
buttonText: "Button2"
|
||||||
|
// color: "yellow"
|
||||||
|
onButtonClicked: {
|
||||||
|
console.log("Clicked on button1")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
18
4DemoApp/main.cpp
Normal file
18
4DemoApp/main.cpp
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#include <QGuiApplication>
|
||||||
|
#include <QQmlApplicationEngine>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QGuiApplication app(argc, argv);
|
||||||
|
|
||||||
|
QQmlApplicationEngine engine;
|
||||||
|
QObject::connect(
|
||||||
|
&engine,
|
||||||
|
&QQmlApplicationEngine::objectCreationFailed,
|
||||||
|
&app,
|
||||||
|
[]() { QCoreApplication::exit(-1); },
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
engine.loadFromModule("4DemoApp", "Main");
|
||||||
|
|
||||||
|
return app.exec();
|
||||||
|
}
|
||||||
BIN
Qt6QMLForBeginners.pdf
Normal file
BIN
Qt6QMLForBeginners.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user