forked from qt-creator/qt-creator
Layouting: Add some example code as show case
Change-Id: I92842c7859514397748e744949688090154772df Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
6
tests/manual/layoutbuilder/comparison/CMakeLists.txt
Normal file
6
tests/manual/layoutbuilder/comparison/CMakeLists.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
|
||||
project(Comparison)
|
||||
|
||||
add_subdirectory(quick)
|
||||
add_subdirectory(widgets)
|
||||
add_subdirectory(layoutbuilder)
|
||||
@@ -0,0 +1,46 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
project(layoutbuilder VERSION 0.1 LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Widgets)
|
||||
|
||||
set(PROJECT_SOURCES
|
||||
main.cpp
|
||||
mainwindow.cpp
|
||||
mainwindow.h
|
||||
../../../../../src/libs/utils/layoutbuilder.cpp
|
||||
../../../../../src/libs/utils/layoutbuilder.h
|
||||
)
|
||||
|
||||
add_executable(layoutbuilder
|
||||
${PROJECT_SOURCES}
|
||||
)
|
||||
|
||||
target_include_directories(layoutbuilder PRIVATE
|
||||
../../../../../src/libs/utils/
|
||||
)
|
||||
|
||||
target_link_libraries(layoutbuilder PRIVATE
|
||||
Qt6::Widgets
|
||||
)
|
||||
|
||||
set_target_properties(layoutbuilder PROPERTIES
|
||||
MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
|
||||
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||
MACOSX_BUNDLE TRUE
|
||||
WIN32_EXECUTABLE TRUE
|
||||
)
|
||||
|
||||
install(TARGETS layoutbuilder
|
||||
BUNDLE DESTINATION .
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
11
tests/manual/layoutbuilder/comparison/layoutbuilder/main.cpp
Normal file
11
tests/manual/layoutbuilder/comparison/layoutbuilder/main.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
ApplicationWindow w;
|
||||
w.show();
|
||||
return a.exec();
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include "layoutbuilder.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QWidget>
|
||||
|
||||
using namespace Layouting;
|
||||
|
||||
class ApplicationWindow : public QWidget
|
||||
{
|
||||
public:
|
||||
ApplicationWindow()
|
||||
{
|
||||
resize(600, 400);
|
||||
setWindowTitle("Hello World");
|
||||
|
||||
Column {
|
||||
TextEdit {
|
||||
text("Hallo")
|
||||
},
|
||||
|
||||
PushButton {
|
||||
text("Quit"),
|
||||
onClicked([] { QCoreApplication::quit(); })
|
||||
}
|
||||
}.attachTo(this);
|
||||
}
|
||||
};
|
||||
37
tests/manual/layoutbuilder/comparison/quick/CMakeLists.txt
Normal file
37
tests/manual/layoutbuilder/comparison/quick/CMakeLists.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(quick VERSION 0.1 LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(Qt6 6.4 REQUIRED COMPONENTS Quick)
|
||||
|
||||
qt_standard_project_setup()
|
||||
|
||||
qt_add_executable(appquick
|
||||
main.cpp
|
||||
)
|
||||
|
||||
qt_add_qml_module(appquick
|
||||
URI quick
|
||||
VERSION 1.0
|
||||
QML_FILES Main.qml
|
||||
)
|
||||
|
||||
set_target_properties(appquick PROPERTIES
|
||||
MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
|
||||
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(appquick
|
||||
PRIVATE Qt6::Quick
|
||||
)
|
||||
|
||||
install(TARGETS appquick
|
||||
BUNDLE DESTINATION .
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
30
tests/manual/layoutbuilder/comparison/quick/Main.qml
Normal file
30
tests/manual/layoutbuilder/comparison/quick/Main.qml
Normal file
@@ -0,0 +1,30 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
|
||||
ApplicationWindow {
|
||||
|
||||
width: 640
|
||||
height: 480
|
||||
visible: true
|
||||
title: "Hello World"
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Text {
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
|
||||
text: "Hallo"
|
||||
}
|
||||
|
||||
Button {
|
||||
text: "Quit"
|
||||
height: 20
|
||||
Layout.fillWidth: true
|
||||
|
||||
onClicked: { Qt.quit() }
|
||||
}
|
||||
}
|
||||
}
|
||||
16
tests/manual/layoutbuilder/comparison/quick/main.cpp
Normal file
16
tests/manual/layoutbuilder/comparison/quick/main.cpp
Normal file
@@ -0,0 +1,16 @@
|
||||
#include <QGuiApplication>
|
||||
#include <QQmlApplicationEngine>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QGuiApplication app(argc, argv);
|
||||
|
||||
QQmlApplicationEngine engine;
|
||||
const QUrl url(u"qrc:/quick/Main.qml"_qs);
|
||||
QObject::connect(&engine, &QQmlApplicationEngine::objectCreationFailed,
|
||||
&app, []() { QCoreApplication::exit(-1); },
|
||||
Qt::QueuedConnection);
|
||||
engine.load(url);
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
40
tests/manual/layoutbuilder/comparison/widgets/CMakeLists.txt
Normal file
40
tests/manual/layoutbuilder/comparison/widgets/CMakeLists.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
project(widgets VERSION 0.1 LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Widgets)
|
||||
|
||||
set(PROJECT_SOURCES
|
||||
main.cpp
|
||||
mainwindow.cpp
|
||||
mainwindow.h
|
||||
)
|
||||
|
||||
add_executable(widgets
|
||||
${PROJECT_SOURCES}
|
||||
)
|
||||
|
||||
target_link_libraries(widgets PRIVATE
|
||||
Qt6::Widgets
|
||||
)
|
||||
|
||||
set_target_properties(widgets PROPERTIES
|
||||
MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
|
||||
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||
MACOSX_BUNDLE TRUE
|
||||
WIN32_EXECUTABLE TRUE
|
||||
)
|
||||
|
||||
install(TARGETS widgets
|
||||
BUNDLE DESTINATION .
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
12
tests/manual/layoutbuilder/comparison/widgets/main.cpp
Normal file
12
tests/manual/layoutbuilder/comparison/widgets/main.cpp
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
ApplicationWindow w;
|
||||
w.show();
|
||||
return a.exec();
|
||||
}
|
||||
24
tests/manual/layoutbuilder/comparison/widgets/mainwindow.cpp
Normal file
24
tests/manual/layoutbuilder/comparison/widgets/mainwindow.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
//#include "mainwindow.h"
|
||||
|
||||
//#include <QApplication>
|
||||
//#include <QPushButton>
|
||||
//#include <QTextEdit>
|
||||
//#include <QVBoxLayout>
|
||||
|
||||
//ApplicationWindow::ApplicationWindow()
|
||||
//{
|
||||
// resize(600, 400);
|
||||
// setWindowTitle("Hello World");
|
||||
|
||||
// auto textEdit = new QTextEdit;
|
||||
// textEdit->setText("Hallo");
|
||||
|
||||
// auto pushButton = new QPushButton("Quit");
|
||||
|
||||
// auto l = new QVBoxLayout(this);
|
||||
// l->addWidget(textEdit);
|
||||
// l->addWidget(pushButton);
|
||||
|
||||
// connect(pushButton, &QPushButton::clicked,
|
||||
// qApp, &QCoreApplication::quit);
|
||||
//}
|
||||
28
tests/manual/layoutbuilder/comparison/widgets/mainwindow.h
Normal file
28
tests/manual/layoutbuilder/comparison/widgets/mainwindow.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <QApplication>
|
||||
#include <QPushButton>
|
||||
#include <QTextEdit>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
class ApplicationWindow : public QWidget
|
||||
{
|
||||
public:
|
||||
ApplicationWindow()
|
||||
{
|
||||
resize(600, 400);
|
||||
setWindowTitle("Hello World");
|
||||
|
||||
auto textEdit = new QTextEdit;
|
||||
textEdit->setText("Hallo");
|
||||
|
||||
auto pushButton = new QPushButton("Quit");
|
||||
|
||||
auto l = new QVBoxLayout(this);
|
||||
l->addWidget(textEdit);
|
||||
l->addWidget(pushButton);
|
||||
|
||||
connect(pushButton, &QPushButton::clicked,
|
||||
qApp, &QCoreApplication::quit);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user