summaryrefslogtreecommitdiff
path: root/examples/widgets/tutorials
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-08-31 10:25:42 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-10-31 15:08:24 +0000
commit1631c8bbfdf1bcabe3d860db4626adb780a988e7 (patch)
tree9ab7f1163cbf2398015b44e534859fbaf2b45abf /examples/widgets/tutorials
parent356ca93eb2f9d3e4be2caf0a0a13cde9cb75e807 (diff)
downloadqtbase-wip/qbs2.tar.gz
Port the exampleswip/qbs2
Change-Id: I86d7bddf956b8d48b05b0b96112a74e7e270bb23 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'examples/widgets/tutorials')
-rw-r--r--examples/widgets/tutorials/addressbook/addressbook.qbs14
-rw-r--r--examples/widgets/tutorials/addressbook/part1/part1.qbs22
-rw-r--r--examples/widgets/tutorials/addressbook/part2/part2.qbs22
-rw-r--r--examples/widgets/tutorials/addressbook/part3/part3.qbs22
-rw-r--r--examples/widgets/tutorials/addressbook/part4/part4.qbs22
-rw-r--r--examples/widgets/tutorials/addressbook/part5/part5.qbs24
-rw-r--r--examples/widgets/tutorials/addressbook/part6/part6.qbs24
-rw-r--r--examples/widgets/tutorials/addressbook/part7/part7.qbs24
-rw-r--r--examples/widgets/tutorials/gettingStarted/gettingStarted.qbs8
-rw-r--r--examples/widgets/tutorials/gettingStarted/gsQt/gsqt.qbs12
-rw-r--r--examples/widgets/tutorials/gettingStarted/gsQt/part1/part1.qbs21
-rw-r--r--examples/widgets/tutorials/gettingStarted/gsQt/part2/part2.qbs21
-rw-r--r--examples/widgets/tutorials/gettingStarted/gsQt/part3/part3.qbs21
-rw-r--r--examples/widgets/tutorials/gettingStarted/gsQt/part4/part4.qbs21
-rw-r--r--examples/widgets/tutorials/gettingStarted/gsQt/part5/part5.qbs21
-rw-r--r--examples/widgets/tutorials/modelview/1_readonly/1_readonly.qbs22
-rw-r--r--examples/widgets/tutorials/modelview/2_formatting/2_formatting.qbs22
-rw-r--r--examples/widgets/tutorials/modelview/3_changingmodel/3_changingmodel.qbs22
-rw-r--r--examples/widgets/tutorials/modelview/4_headers/4_headers.qbs22
-rw-r--r--examples/widgets/tutorials/modelview/5_edit/5_edit.qbs24
-rw-r--r--examples/widgets/tutorials/modelview/6_treeview/6_treeview.qbs22
-rw-r--r--examples/widgets/tutorials/modelview/7_selections/7_selections.qbs22
-rw-r--r--examples/widgets/tutorials/modelview/modelview.qbs14
-rw-r--r--examples/widgets/tutorials/tutorials.qbs11
-rw-r--r--examples/widgets/tutorials/widgets/childwidget/childwidget.qbs20
-rw-r--r--examples/widgets/tutorials/widgets/nestedlayouts/nestedlayouts.qbs20
-rw-r--r--examples/widgets/tutorials/widgets/toplevel/toplevel.qbs20
-rw-r--r--examples/widgets/tutorials/widgets/widgets.qbs11
-rw-r--r--examples/widgets/tutorials/widgets/windowlayout/windowlayout.qbs20
29 files changed, 571 insertions, 0 deletions
diff --git a/examples/widgets/tutorials/addressbook/addressbook.qbs b/examples/widgets/tutorials/addressbook/addressbook.qbs
new file mode 100644
index 0000000000..592244c1db
--- /dev/null
+++ b/examples/widgets/tutorials/addressbook/addressbook.qbs
@@ -0,0 +1,14 @@
+import qbs
+
+Project {
+ name: "addressbook"
+ references: [
+ "part1",
+ "part2",
+ "part3",
+ "part4",
+ "part5",
+ "part6",
+ "part7",
+ ]
+}
diff --git a/examples/widgets/tutorials/addressbook/part1/part1.qbs b/examples/widgets/tutorials/addressbook/part1/part1.qbs
new file mode 100644
index 0000000000..8eebbc7bed
--- /dev/null
+++ b/examples/widgets/tutorials/addressbook/part1/part1.qbs
@@ -0,0 +1,22 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "part1"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "addressbook.cpp",
+ "addressbook.h",
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "addressbook", "part1")
+ }
+}
diff --git a/examples/widgets/tutorials/addressbook/part2/part2.qbs b/examples/widgets/tutorials/addressbook/part2/part2.qbs
new file mode 100644
index 0000000000..c7a74c40fe
--- /dev/null
+++ b/examples/widgets/tutorials/addressbook/part2/part2.qbs
@@ -0,0 +1,22 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "part2"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "addressbook.cpp",
+ "addressbook.h",
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "addressbook", "part2")
+ }
+}
diff --git a/examples/widgets/tutorials/addressbook/part3/part3.qbs b/examples/widgets/tutorials/addressbook/part3/part3.qbs
new file mode 100644
index 0000000000..8e415d2710
--- /dev/null
+++ b/examples/widgets/tutorials/addressbook/part3/part3.qbs
@@ -0,0 +1,22 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "part3"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "addressbook.cpp",
+ "addressbook.h",
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "addressbook", "part3")
+ }
+}
diff --git a/examples/widgets/tutorials/addressbook/part4/part4.qbs b/examples/widgets/tutorials/addressbook/part4/part4.qbs
new file mode 100644
index 0000000000..2bf0c9c117
--- /dev/null
+++ b/examples/widgets/tutorials/addressbook/part4/part4.qbs
@@ -0,0 +1,22 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "part4"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "addressbook.cpp",
+ "addressbook.h",
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "addressbook", "part4")
+ }
+}
diff --git a/examples/widgets/tutorials/addressbook/part5/part5.qbs b/examples/widgets/tutorials/addressbook/part5/part5.qbs
new file mode 100644
index 0000000000..66617d1280
--- /dev/null
+++ b/examples/widgets/tutorials/addressbook/part5/part5.qbs
@@ -0,0 +1,24 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "part5"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "addressbook.cpp",
+ "addressbook.h",
+ "finddialog.cpp",
+ "finddialog.h",
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "addressbook", "part5")
+ }
+}
diff --git a/examples/widgets/tutorials/addressbook/part6/part6.qbs b/examples/widgets/tutorials/addressbook/part6/part6.qbs
new file mode 100644
index 0000000000..13ed81a3fd
--- /dev/null
+++ b/examples/widgets/tutorials/addressbook/part6/part6.qbs
@@ -0,0 +1,24 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "part6"
+ condition: Qt.widgets.present && Qt.widgets.config.filedialog
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "addressbook.cpp",
+ "addressbook.h",
+ "finddialog.cpp",
+ "finddialog.h",
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "addressbook", "part6")
+ }
+}
diff --git a/examples/widgets/tutorials/addressbook/part7/part7.qbs b/examples/widgets/tutorials/addressbook/part7/part7.qbs
new file mode 100644
index 0000000000..a1e6a02777
--- /dev/null
+++ b/examples/widgets/tutorials/addressbook/part7/part7.qbs
@@ -0,0 +1,24 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "part7"
+ condition: Qt.widgets.present && Qt.widgets.config.filedialog
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "addressbook.cpp",
+ "addressbook.h",
+ "finddialog.cpp",
+ "finddialog.h",
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "addressbook", "part7")
+ }
+}
diff --git a/examples/widgets/tutorials/gettingStarted/gettingStarted.qbs b/examples/widgets/tutorials/gettingStarted/gettingStarted.qbs
new file mode 100644
index 0000000000..59f3a236c4
--- /dev/null
+++ b/examples/widgets/tutorials/gettingStarted/gettingStarted.qbs
@@ -0,0 +1,8 @@
+import qbs
+
+Project {
+ name: "gettingStarted"
+ references: [
+ "gsQt",
+ ]
+}
diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/gsqt.qbs b/examples/widgets/tutorials/gettingStarted/gsQt/gsqt.qbs
new file mode 100644
index 0000000000..f2ba6fd07c
--- /dev/null
+++ b/examples/widgets/tutorials/gettingStarted/gsQt/gsqt.qbs
@@ -0,0 +1,12 @@
+import qbs
+
+Project {
+ name: "gsqt"
+ references: [
+ "part1",
+ "part2",
+ "part3",
+ "part4",
+ "part5",
+ ]
+}
diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/part1/part1.qbs b/examples/widgets/tutorials/gettingStarted/gsQt/part1/part1.qbs
new file mode 100644
index 0000000000..b458558bd7
--- /dev/null
+++ b/examples/widgets/tutorials/gettingStarted/gsQt/part1/part1.qbs
@@ -0,0 +1,21 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "gettingStarted_part1"
+ targetName: "part1"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "gettingStarted", "gsQt", "part1")
+ }
+}
diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/part2/part2.qbs b/examples/widgets/tutorials/gettingStarted/gsQt/part2/part2.qbs
new file mode 100644
index 0000000000..73d50deefe
--- /dev/null
+++ b/examples/widgets/tutorials/gettingStarted/gsQt/part2/part2.qbs
@@ -0,0 +1,21 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "gettingStarted_part2"
+ targetName: "part2"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "gettingStarted", "gsQt", "part2")
+ }
+}
diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/part3/part3.qbs b/examples/widgets/tutorials/gettingStarted/gsQt/part3/part3.qbs
new file mode 100644
index 0000000000..a37d072326
--- /dev/null
+++ b/examples/widgets/tutorials/gettingStarted/gsQt/part3/part3.qbs
@@ -0,0 +1,21 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "gettingStarted_part3"
+ targetName: "part3"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "gettingStarted", "gsQt", "part3")
+ }
+}
diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/part4/part4.qbs b/examples/widgets/tutorials/gettingStarted/gsQt/part4/part4.qbs
new file mode 100644
index 0000000000..f9f78fa296
--- /dev/null
+++ b/examples/widgets/tutorials/gettingStarted/gsQt/part4/part4.qbs
@@ -0,0 +1,21 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "gettingStarted_part4"
+ targetName: "part4"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "gettingStarted", "gsQt", "part4")
+ }
+}
diff --git a/examples/widgets/tutorials/gettingStarted/gsQt/part5/part5.qbs b/examples/widgets/tutorials/gettingStarted/gsQt/part5/part5.qbs
new file mode 100644
index 0000000000..6691d01c18
--- /dev/null
+++ b/examples/widgets/tutorials/gettingStarted/gsQt/part5/part5.qbs
@@ -0,0 +1,21 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "gettingStarted_part5"
+ targetName: "part5"
+ condition: Qt.widgets.present && Qt.widgets.config.filedialog
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "gettingStarted", "gsQt", "part5")
+ }
+}
diff --git a/examples/widgets/tutorials/modelview/1_readonly/1_readonly.qbs b/examples/widgets/tutorials/modelview/1_readonly/1_readonly.qbs
new file mode 100644
index 0000000000..aba47acfed
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/1_readonly/1_readonly.qbs
@@ -0,0 +1,22 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "mv_readonly"
+ condition: Qt.widgets.present && Qt.widgets.config.tableview
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ "mymodel.cpp",
+ "mymodel.h",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "modelview", "1_readonly")
+ }
+}
diff --git a/examples/widgets/tutorials/modelview/2_formatting/2_formatting.qbs b/examples/widgets/tutorials/modelview/2_formatting/2_formatting.qbs
new file mode 100644
index 0000000000..88bc32dc32
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/2_formatting/2_formatting.qbs
@@ -0,0 +1,22 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "mv_formatting"
+ condition: Qt.widgets.present && Qt.widgets.config.tableview
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ "mymodel.cpp",
+ "mymodel.h",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "modelview", "2_formatting")
+ }
+}
diff --git a/examples/widgets/tutorials/modelview/3_changingmodel/3_changingmodel.qbs b/examples/widgets/tutorials/modelview/3_changingmodel/3_changingmodel.qbs
new file mode 100644
index 0000000000..9116a8cc67
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/3_changingmodel/3_changingmodel.qbs
@@ -0,0 +1,22 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "mv_changingmodel"
+ condition: Qt.widgets.present && Qt.widgets.config.tableview
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ "mymodel.cpp",
+ "mymodel.h",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "modelview", "3_changingmodels")
+ }
+}
diff --git a/examples/widgets/tutorials/modelview/4_headers/4_headers.qbs b/examples/widgets/tutorials/modelview/4_headers/4_headers.qbs
new file mode 100644
index 0000000000..21bd3eaa2d
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/4_headers/4_headers.qbs
@@ -0,0 +1,22 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "mv_headers"
+ condition: Qt.widgets.present && Qt.widgets.config.tableview
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ "mymodel.cpp",
+ "mymodel.h",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "modelview", "4_headers")
+ }
+}
diff --git a/examples/widgets/tutorials/modelview/5_edit/5_edit.qbs b/examples/widgets/tutorials/modelview/5_edit/5_edit.qbs
new file mode 100644
index 0000000000..e69bbdd51e
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/5_edit/5_edit.qbs
@@ -0,0 +1,24 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "mv_edit"
+ condition: Qt.widgets.present && Qt.widgets.config.tableview
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ "mainwindow.cpp",
+ "mainwindow.h",
+ "mymodel.cpp",
+ "mymodel.h",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "modelview", "5_edit")
+ }
+}
diff --git a/examples/widgets/tutorials/modelview/6_treeview/6_treeview.qbs b/examples/widgets/tutorials/modelview/6_treeview/6_treeview.qbs
new file mode 100644
index 0000000000..922ef49c02
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/6_treeview/6_treeview.qbs
@@ -0,0 +1,22 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "mv_tree"
+ condition: Qt.widgets.present && Qt.widgets.config.treeview
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ "mainwindow.cpp",
+ "mainwindow.h",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "modelview", "6_treeview")
+ }
+}
diff --git a/examples/widgets/tutorials/modelview/7_selections/7_selections.qbs b/examples/widgets/tutorials/modelview/7_selections/7_selections.qbs
new file mode 100644
index 0000000000..227f44c92f
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/7_selections/7_selections.qbs
@@ -0,0 +1,22 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "mv_selections"
+ condition: Qt.widgets.present && Qt.widgets.config.treeview
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ "mainwindow.cpp",
+ "mainwindow.h",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "modelview", "7_selections")
+ }
+}
diff --git a/examples/widgets/tutorials/modelview/modelview.qbs b/examples/widgets/tutorials/modelview/modelview.qbs
new file mode 100644
index 0000000000..f8d338c4d6
--- /dev/null
+++ b/examples/widgets/tutorials/modelview/modelview.qbs
@@ -0,0 +1,14 @@
+import qbs
+
+Project {
+ name: "modelview"
+ references: [
+ "1_readonly",
+ "2_formatting",
+ "3_changingmodel",
+ "4_headers",
+ "5_edit",
+ "6_treeview",
+ "7_selections",
+ ]
+}
diff --git a/examples/widgets/tutorials/tutorials.qbs b/examples/widgets/tutorials/tutorials.qbs
new file mode 100644
index 0000000000..ecf44f8a2e
--- /dev/null
+++ b/examples/widgets/tutorials/tutorials.qbs
@@ -0,0 +1,11 @@
+import qbs
+
+Project {
+ name: "tutorials"
+ references: [
+ "addressbook",
+ "gettingStarted",
+ "modelview",
+ "widgets",
+ ]
+}
diff --git a/examples/widgets/tutorials/widgets/childwidget/childwidget.qbs b/examples/widgets/tutorials/widgets/childwidget/childwidget.qbs
new file mode 100644
index 0000000000..36681e6c6d
--- /dev/null
+++ b/examples/widgets/tutorials/widgets/childwidget/childwidget.qbs
@@ -0,0 +1,20 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "childwidget"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "widgets", "childwidget")
+ }
+}
diff --git a/examples/widgets/tutorials/widgets/nestedlayouts/nestedlayouts.qbs b/examples/widgets/tutorials/widgets/nestedlayouts/nestedlayouts.qbs
new file mode 100644
index 0000000000..f2300703a7
--- /dev/null
+++ b/examples/widgets/tutorials/widgets/nestedlayouts/nestedlayouts.qbs
@@ -0,0 +1,20 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "nestedlayouts"
+ condition: Qt.widgets.present && Qt.widgets.config.tableview
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "widgets", "nestedlayouts")
+ }
+}
diff --git a/examples/widgets/tutorials/widgets/toplevel/toplevel.qbs b/examples/widgets/tutorials/widgets/toplevel/toplevel.qbs
new file mode 100644
index 0000000000..36c1477264
--- /dev/null
+++ b/examples/widgets/tutorials/widgets/toplevel/toplevel.qbs
@@ -0,0 +1,20 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "toplevel"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "widgets", "toplevel")
+ }
+}
diff --git a/examples/widgets/tutorials/widgets/widgets.qbs b/examples/widgets/tutorials/widgets/widgets.qbs
new file mode 100644
index 0000000000..f9c209be66
--- /dev/null
+++ b/examples/widgets/tutorials/widgets/widgets.qbs
@@ -0,0 +1,11 @@
+import qbs
+
+Project {
+ name: "widgets"
+ references: [
+ "childwidget",
+ "nestedlayouts",
+ "toplevel",
+ "windowlayout",
+ ]
+}
diff --git a/examples/widgets/tutorials/widgets/windowlayout/windowlayout.qbs b/examples/widgets/tutorials/widgets/windowlayout/windowlayout.qbs
new file mode 100644
index 0000000000..d69dd22a72
--- /dev/null
+++ b/examples/widgets/tutorials/widgets/windowlayout/windowlayout.qbs
@@ -0,0 +1,20 @@
+import qbs
+import qbs.FileInfo
+
+CppApplication {
+ name: "windowlayout"
+ condition: Qt.widgets.present
+
+ Depends { name: "Qt.widgets"; required: false }
+
+ files: [
+ "main.cpp",
+ ]
+
+ Group {
+ fileTagsFilter: ["application"]
+ qbs.install: true
+ qbs.installDir: FileInfo.joinPaths(Qt.core.examplesInstallDir, "widgets", "tutorials",
+ "widgets", "windowlayout")
+ }
+}