From 53cf643e2456d4be35c65dddcd4e46d944437931 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20O=2E=20Cordero=20P=C3=A9rez?= Date: Sat, 1 Feb 2025 10:15:00 -0400 Subject: [PATCH 1/5] Add example for Widget window in Qt Quick Example app wher a window bounces across the screen, like an old DVD player's logo would. You control the text through one of two identical forms, one implemented in QML and the other in Widgets. The example code follows best practices. Due to limitations with Wayland, it only works on X11 on Linux. --- .../Widget-window-in-Qt-Quick-app/.gitignore | 75 ++++++++++++++++++ .../CMakeLists.txt | 46 +++++++++++ .../FontControlsQmlForm.qml | 51 ++++++++++++ .../Widget-window-in-Qt-Quick-app/Main.qml | 77 +++++++++++++++++++ .../fontcontrolswidgetsform.cpp | 35 +++++++++ .../fontcontrolswidgetsform.h | 33 ++++++++ .../fontcontrolswidgetsform.ui | 38 +++++++++ .../fontsbackend.cpp | 13 ++++ .../fontsbackend.h | 15 ++++ .../Widget-window-in-Qt-Quick-app/main.cpp | 18 +++++ .../Widget-window-in-Qt-Quick-app/timer.cpp | 12 +++ .../Widget-window-in-Qt-Quick-app/timer.h | 18 +++++ .../widgetFormHandler.cpp | 41 ++++++++++ .../widgetFormHandler.h | 34 ++++++++ 14 files changed, 506 insertions(+) create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/.gitignore create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/CMakeLists.txt create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/Main.qml create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.cpp create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.h create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.ui create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.cpp create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.h create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/main.cpp create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/timer.cpp create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/timer.h create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.cpp create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.h diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/.gitignore b/Blog-projects/Widget-window-in-Qt-Quick-app/.gitignore new file mode 100644 index 0000000..e25c4d9 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/.gitignore @@ -0,0 +1,75 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* +CMakeLists.txt.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + +*build* diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/CMakeLists.txt b/Blog-projects/Widget-window-in-Qt-Quick-app/CMakeLists.txt new file mode 100644 index 0000000..fbc45f0 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/CMakeLists.txt @@ -0,0 +1,46 @@ +cmake_minimum_required(VERSION 3.16) + +project(WidgetWindowsInQtQuickApp VERSION 0.1 LANGUAGES CXX) + +find_package(Qt6 6.5 REQUIRED COMPONENTS Quick Widgets) + +qt_standard_project_setup(REQUIRES 6.5) + +qt_add_executable(appWidgetWindowsInQtQuickApp + main.cpp +) + +qt_add_qml_module(appWidgetWindowsInQtQuickApp + URI WidgetWindowsInQtQuickApp + VERSION 1.0 + QML_FILES + Main.qml + FontControlsQmlForm.qml + SOURCES + fontsbackend.h fontsbackend.cpp + fontcontrolswidgetsform.h fontcontrolswidgetsform.cpp + timer.h timer.cpp + widgetFormHandler.h widgetFormHandler.cpp + RESOURCES fontcontrolswidgetsform.ui +) + +# 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(appWidgetWindowsInQtQuickApp PROPERTIES + MACOSX_BUNDLE_GUI_IDENTIFIER com.kdab.appWidgetWindowsInQtQuickApp + 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(appWidgetWindowsInQtQuickApp + PRIVATE Qt6::Quick Qt6::Widgets) + +include(GNUInstallDirs) +install(TARGETS appWidgetWindowsInQtQuickApp + BUNDLE DESTINATION . + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml b/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml new file mode 100644 index 0000000..598bd05 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml @@ -0,0 +1,51 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import WidgetWindowsInQtQuickApp as Cpp + +Window { + id: window + readonly property alias text: textField.text + readonly property string fontFamily: fontSelector.model[fontSelector.currentIndex] + signal toggleWidgetsWindow + height: 110 + width: 300 + minimumHeight: 110 + minimumWidth: 260 + visible: true + title: qsTr("Font Controls - Qt Quick") + color: systemPalette.window + SystemPalette { + id: systemPalette + } + ColumnLayout { + anchors.fill: parent + anchors.margins: 10 + TextField { + id: textField + text: "KDAB" + focus: true + Layout.fillWidth: true + } + Button { + text: "Switch to Widgets Form" + Layout.fillWidth: true + onClicked: { + window.toggleWidgetsWindow(); + } + } + ComboBox { + id: fontSelector + model: fontsBackend.fontFamilyList() + editable: true + Layout.fillWidth: true + Component.onCompleted: { + if (!fontSelector.currentIndex) + currentIndex = indexOfValue("Noto Sans"); + } + Cpp.FontsBackend { + id: fontsBackend + } + } + } +} diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/Main.qml b/Blog-projects/Widget-window-in-Qt-Quick-app/Main.qml new file mode 100644 index 0000000..d52ef9a --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/Main.qml @@ -0,0 +1,77 @@ +import QtQuick +import WidgetWindowsInQtQuickApp as Cpp + +Window { + id: frame + property bool widgetsWindow: false + function updatePosition(miliseconds: int): void { + const time = miliseconds / 1000.0; + const aspectRatio = boundary.right / boundary.bottom * 11 + x = triangleWave(time, boundary.right, aspectRatio); + y = triangleWave(time, boundary.bottom, 1-aspectRatio); + } + function triangleWave(x: double, amplitude: int, period: double): int { + return Math.abs((2 * amplitude) / Math.PI * Math.asin(Math.sin((2 * Math.PI) / period * x))); + } + function toggleWidgetsWindow() { + frame.widgetsWindow = !frame.widgetsWindow + } + flags: Qt.FramelessWindowHint + color: "transparent" + visible: false + width: bounce.width + 1 + height: bounce.height + QtObject { + id: boundary + readonly property int right: Screen.desktopAvailableWidth - frame.width + readonly property int bottom: Screen.desktopAvailableHeight - frame.height + } + Text { + id: bounce + text: frame.widgetsWindow ? fontWidgetsForm.text : fontQmlForm.text + font.pixelSize: 120 + font.family: frame.widgetsWindow ? fontWidgetsForm.fontFamily : fontQmlForm.fontFamily + color: "#0077C8" + Rectangle { + color: "transparent" + anchors.fill: parent + border.color: bounce.color + border.width: 4 + } + } + Timer { + id: timer + readonly property int startOffset: Math.random() * 36000 + running: true + triggeredOnStart: true + repeat: true + interval: 10 + onTriggered: { + frame.updatePosition(startOffset + elapsedtimer.deltaTime()); + frame.visible = true; + } + } + Cpp.Timer { + id: elapsedtimer + } + FontControlsQmlForm { + id: fontQmlForm + visible: !frame.widgetsWindow + onToggleWidgetsWindow: () => { + frame.toggleWidgetsWindow(); + } + } + Connections { + target: fontQmlForm + function onClosing() { + Qt.quit(); + } + } + Cpp.WidgetFormHandler { + id: fontWidgetsForm + visible: frame.widgetsWindow + onToggleWidgetsWindow: () => { + frame.toggleWidgetsWindow(); + } + } +} diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.cpp b/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.cpp new file mode 100644 index 0000000..89efad5 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.cpp @@ -0,0 +1,35 @@ +#include "fontcontrolswidgetsform.h" +#include "ui_fontcontrolswidgetsform.h" + +FontControlsWidgetsForm::FontControlsWidgetsForm(QWidget *parent) + : QWidget(parent) + , ui(std::make_unique()) +{ + ui->setupUi(this); + connect(ui->lineEdit, &QLineEdit::textChanged, this, &FontControlsWidgetsForm::textChanged); + connect(ui->fontComboBox, &QFontComboBox::currentFontChanged, this, &FontControlsWidgetsForm::fontFamilyChanged); + connect(ui->pushButton, &QPushButton::clicked, this, &FontControlsWidgetsForm::buttonClicked); +} + +FontControlsWidgetsForm::~FontControlsWidgetsForm() = default; + +QString FontControlsWidgetsForm::text() const +{ + return ui->lineEdit->text(); +} + +void FontControlsWidgetsForm::setText(const QString &text) +{ + ui->lineEdit->setText(text); +} + +QString FontControlsWidgetsForm::fontFamily() const +{ + return ui->fontComboBox->currentFont().family(); +} + +void FontControlsWidgetsForm::closeEvent(QCloseEvent *event) +{ + Q_UNUSED(event) + QApplication::quit(); +} diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.h b/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.h new file mode 100644 index 0000000..63f7b66 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.h @@ -0,0 +1,33 @@ +#pragma once + +#include + +namespace Ui { +class FontControlsWidgetsForm; +} + +class FontControlsWidgetsForm : public QWidget +{ + Q_OBJECT + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QString fontFamily READ fontFamily NOTIFY fontFamilyChanged) + +public: + explicit FontControlsWidgetsForm(QWidget *parent = nullptr); + ~FontControlsWidgetsForm(); + + QString text() const; + void setText(const QString&); + QString fontFamily() const; + +signals: + void textChanged(); + void fontFamilyChanged(); + void buttonClicked(); + +protected: + void closeEvent(QCloseEvent *event) override; + +private: + std::unique_ptr ui; +}; diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.ui b/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.ui new file mode 100644 index 0000000..c3d9eb9 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.ui @@ -0,0 +1,38 @@ + + + FontControlsWidgetsForm + + + + 0 + 0 + 300 + 110 + + + + Font Controls - Qt Widgets + + + + + + KDAB + + + + + + + Switch to QML Form + + + + + + + + + + + diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.cpp b/Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.cpp new file mode 100644 index 0000000..3d486cc --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.cpp @@ -0,0 +1,13 @@ +#include "fontsbackend.h" + +#include + +FontsBackend::FontsBackend(QObject *parent) + : QObject{parent} +{ +} + +QStringList FontsBackend::fontFamilyList() +{ + return QFontDatabase::families(); +} diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.h b/Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.h new file mode 100644 index 0000000..0465415 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.h @@ -0,0 +1,15 @@ +#pragma once + +#include +#include + +class FontsBackend : public QObject +{ + Q_OBJECT + QML_ELEMENT + +public: + explicit FontsBackend(QObject *parent = nullptr); + + Q_INVOKABLE static QStringList fontFamilyList(); +}; diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/main.cpp b/Blog-projects/Widget-window-in-Qt-Quick-app/main.cpp new file mode 100644 index 0000000..97de368 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/main.cpp @@ -0,0 +1,18 @@ +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QQmlApplicationEngine engine; + QObject::connect( + &engine, + &QQmlApplicationEngine::objectCreationFailed, + &app, + []() { QCoreApplication::exit(-1); }, + Qt::QueuedConnection); + engine.loadFromModule("WidgetWindowsInQtQuickApp", "Main"); + + return app.exec(); +} diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/timer.cpp b/Blog-projects/Widget-window-in-Qt-Quick-app/timer.cpp new file mode 100644 index 0000000..b5648b1 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/timer.cpp @@ -0,0 +1,12 @@ +#include "timer.h" + +Timer::Timer(QObject *parent) + : QObject{parent} +{ + m_timer.start(); +} + +int Timer::deltaTime() const +{ + return m_timer.elapsed(); +} diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/timer.h b/Blog-projects/Widget-window-in-Qt-Quick-app/timer.h new file mode 100644 index 0000000..f257e05 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/timer.h @@ -0,0 +1,18 @@ +#pragma once + +#include +#include +#include + +class Timer : public QObject +{ + Q_OBJECT + QML_ELEMENT +private: + QElapsedTimer m_timer; + +public: + explicit Timer(QObject *parent = nullptr); + + Q_INVOKABLE int deltaTime() const; +}; diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.cpp b/Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.cpp new file mode 100644 index 0000000..543dea6 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.cpp @@ -0,0 +1,41 @@ +#include "widgetFormHandler.h" +#include "fontcontrolswidgetsform.h" + +WidgetFormHandler::WidgetFormHandler(QObject *parent) + : QObject{parent} + , m_window(std::make_unique()) +{ + m_window->setVisible(false); + connect(m_window.get(), &FontControlsWidgetsForm::buttonClicked, this, &WidgetFormHandler::toggleWidgetsWindow); + connect(m_window.get(), &FontControlsWidgetsForm::textChanged, this, &WidgetFormHandler::textChanged); + connect(m_window.get(), &FontControlsWidgetsForm::fontFamilyChanged, this, &WidgetFormHandler::fontFamilyChanged); +} + +WidgetFormHandler::~WidgetFormHandler() = default; + +const bool WidgetFormHandler::isVisible() +{ + return m_window->isVisible(); +} + +void WidgetFormHandler::setVisible(bool visible) +{ + m_window->setVisible(visible); + emit visibleChanged(); +} + +QString WidgetFormHandler::text() const +{ + return m_window->text(); +} + +void WidgetFormHandler::setText(const QString& text) +{ + m_window->setText(text); + emit textChanged(); +} + +QString WidgetFormHandler::fontFamily() const +{ + return m_window->fontFamily(); +} diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.h b/Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.h new file mode 100644 index 0000000..db17dd2 --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.h @@ -0,0 +1,34 @@ +#pragma once + +#include +#include + +class FontControlsWidgetsForm; + +class WidgetFormHandler : public QObject +{ + Q_OBJECT + QML_ELEMENT + Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged) + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QString fontFamily READ fontFamily NOTIFY fontFamilyChanged) + +public: + explicit WidgetFormHandler(QObject *parent = nullptr); + ~WidgetFormHandler(); + + const bool isVisible(); + void setVisible(bool); + QString text() const; + void setText(const QString&); + QString fontFamily() const; + +signals: + void visibleChanged(); + void textChanged(); + void fontFamilyChanged(); + void toggleWidgetsWindow(); + +private: + std::unique_ptr m_window; +}; From 8db82cc86267160b8d15d133a2245023bace6323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20O=2E=20Cordero=20P=C3=A9rez?= Date: Wed, 5 Feb 2025 23:07:12 -0400 Subject: [PATCH 2/5] Use KDAB brand font --- .../CMakeLists.txt | 2 +- .../FontControlsQmlForm.qml | 2 +- .../fontcontrolswidgetsform.ui | 6 +- .../fonts/OFL.txt | 88 ++++++++++++++++++ .../fonts/OpenSans-Regular.ttf | Bin 0 -> 147528 bytes .../Widget-window-in-Qt-Quick-app/main.cpp | 2 + 6 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/fonts/OFL.txt create mode 100644 Blog-projects/Widget-window-in-Qt-Quick-app/fonts/OpenSans-Regular.ttf diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/CMakeLists.txt b/Blog-projects/Widget-window-in-Qt-Quick-app/CMakeLists.txt index fbc45f0..0659d82 100644 --- a/Blog-projects/Widget-window-in-Qt-Quick-app/CMakeLists.txt +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/CMakeLists.txt @@ -21,7 +21,7 @@ qt_add_qml_module(appWidgetWindowsInQtQuickApp fontcontrolswidgetsform.h fontcontrolswidgetsform.cpp timer.h timer.cpp widgetFormHandler.h widgetFormHandler.cpp - RESOURCES fontcontrolswidgetsform.ui + RESOURCES fontcontrolswidgetsform.ui fonts/OpenSans-Regular.ttf ) # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml b/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml index 598bd05..9ac7dcd 100644 --- a/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml @@ -41,7 +41,7 @@ Window { Layout.fillWidth: true Component.onCompleted: { if (!fontSelector.currentIndex) - currentIndex = indexOfValue("Noto Sans"); + currentIndex = indexOfValue("Open Sans"); } Cpp.FontsBackend { id: fontsBackend diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.ui b/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.ui index c3d9eb9..702e15c 100644 --- a/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.ui +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/fontcontrolswidgetsform.ui @@ -29,7 +29,11 @@ - + + + Open Sans + + diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/fonts/OFL.txt b/Blog-projects/Widget-window-in-Qt-Quick-app/fonts/OFL.txt new file mode 100644 index 0000000..2e76eef --- /dev/null +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/fonts/OFL.txt @@ -0,0 +1,88 @@ +Copyright 2020 The Open Sans Project Authors (https://github.com/googlefonts/opensans) + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font +creation efforts of academic and linguistic communities, and to +provide a free and open framework in which fonts may be shared and +improved in partnership with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply to +any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software +components as distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, +deleting, or substituting -- in part or in whole -- any of the +components of the Original Version, by changing formats or by porting +the Font Software to a new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, +modify, redistribute, and sell modified and unmodified copies of the +Font Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, in +Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the +corresponding Copyright Holder. This restriction only applies to the +primary font name as presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created using +the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/fonts/OpenSans-Regular.ttf b/Blog-projects/Widget-window-in-Qt-Quick-app/fonts/OpenSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8529c432ce34f0bc582e409c420f6bfa6ad0198b GIT binary patch literal 147528 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 z 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 ZJu60E;vtPD?b6uQYUF(fEseif_dgf&dl~=$ literal 0 HcmV?d00001 diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/main.cpp b/Blog-projects/Widget-window-in-Qt-Quick-app/main.cpp index 97de368..b893da4 100644 --- a/Blog-projects/Widget-window-in-Qt-Quick-app/main.cpp +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/main.cpp @@ -1,5 +1,6 @@ #include #include +#include int main(int argc, char *argv[]) { @@ -12,6 +13,7 @@ int main(int argc, char *argv[]) &app, []() { QCoreApplication::exit(-1); }, Qt::QueuedConnection); + QFontDatabase::addApplicationFont(":/qt/qml/WidgetWindowsInQtQuickApp/fonts/OpenSans-Regular.ttf"); engine.loadFromModule("WidgetWindowsInQtQuickApp", "Main"); return app.exec(); From 415b005451aefb423e31431b5bc06527aeb5add4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20O=2E=20Cordero=20P=C3=A9rez?= Date: Wed, 5 Feb 2025 23:06:58 -0400 Subject: [PATCH 3/5] Use qsTr consistently --- .../Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml b/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml index 9ac7dcd..f33a9b0 100644 --- a/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml @@ -28,7 +28,7 @@ Window { Layout.fillWidth: true } Button { - text: "Switch to Widgets Form" + text: qsTr("Switch to Widgets Form") Layout.fillWidth: true onClicked: { window.toggleWidgetsWindow(); From e55600f793f3455b9ff7c1f8e71bf2673f262399 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20O=2E=20Cordero=20P=C3=A9rez?= Date: Thu, 6 Feb 2025 11:11:50 -0400 Subject: [PATCH 4/5] Fix inconsistent call to parent --- Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.cpp | 2 +- Blog-projects/Widget-window-in-Qt-Quick-app/timer.cpp | 2 +- .../Widget-window-in-Qt-Quick-app/widgetFormHandler.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.cpp b/Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.cpp index 3d486cc..3c370e4 100644 --- a/Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.cpp +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/fontsbackend.cpp @@ -3,7 +3,7 @@ #include FontsBackend::FontsBackend(QObject *parent) - : QObject{parent} + : QObject(parent) { } diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/timer.cpp b/Blog-projects/Widget-window-in-Qt-Quick-app/timer.cpp index b5648b1..208325c 100644 --- a/Blog-projects/Widget-window-in-Qt-Quick-app/timer.cpp +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/timer.cpp @@ -1,7 +1,7 @@ #include "timer.h" Timer::Timer(QObject *parent) - : QObject{parent} + : QObject(parent) { m_timer.start(); } diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.cpp b/Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.cpp index 543dea6..93115ea 100644 --- a/Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.cpp +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/widgetFormHandler.cpp @@ -2,7 +2,7 @@ #include "fontcontrolswidgetsform.h" WidgetFormHandler::WidgetFormHandler(QObject *parent) - : QObject{parent} + : QObject(parent) , m_window(std::make_unique()) { m_window->setVisible(false); From 3f3bb21ad484dd218bd808032c6f196e4cdf9aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20O=2E=20Cordero=20P=C3=A9rez?= Date: Thu, 6 Feb 2025 22:12:23 -0400 Subject: [PATCH 5/5] Add space between QML sections Improves legibility --- .../Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml | 4 ++++ Blog-projects/Widget-window-in-Qt-Quick-app/Main.qml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml b/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml index f33a9b0..5de688e 100644 --- a/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/FontControlsQmlForm.qml @@ -5,9 +5,12 @@ import WidgetWindowsInQtQuickApp as Cpp Window { id: window + readonly property alias text: textField.text readonly property string fontFamily: fontSelector.model[fontSelector.currentIndex] + signal toggleWidgetsWindow + height: 110 width: 300 minimumHeight: 110 @@ -15,6 +18,7 @@ Window { visible: true title: qsTr("Font Controls - Qt Quick") color: systemPalette.window + SystemPalette { id: systemPalette } diff --git a/Blog-projects/Widget-window-in-Qt-Quick-app/Main.qml b/Blog-projects/Widget-window-in-Qt-Quick-app/Main.qml index d52ef9a..06f7492 100644 --- a/Blog-projects/Widget-window-in-Qt-Quick-app/Main.qml +++ b/Blog-projects/Widget-window-in-Qt-Quick-app/Main.qml @@ -3,7 +3,9 @@ import WidgetWindowsInQtQuickApp as Cpp Window { id: frame + property bool widgetsWindow: false + function updatePosition(miliseconds: int): void { const time = miliseconds / 1000.0; const aspectRatio = boundary.right / boundary.bottom * 11 @@ -16,11 +18,13 @@ Window { function toggleWidgetsWindow() { frame.widgetsWindow = !frame.widgetsWindow } + flags: Qt.FramelessWindowHint color: "transparent" visible: false width: bounce.width + 1 height: bounce.height + QtObject { id: boundary readonly property int right: Screen.desktopAvailableWidth - frame.width