From 3737b4d6fec5a276251c050685851194daa54302 Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <2546789017@qq.com> Date: Mon, 4 Jul 2022 13:27:42 +0800 Subject: [PATCH] update README.md Signed-off-by: Yuhang Zhao <2546789017@qq.com> --- README.md | 30 +++++++++++++++++++----------- doc/QVogenClient.png | Bin 0 -> 32470 bytes 2 files changed, 19 insertions(+), 11 deletions(-) create mode 100644 doc/QVogenClient.png diff --git a/README.md b/README.md index e1e33bb..a6bd0ff 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ -# FramelessHelper 2.1 +# FramelessHelper 2.x Cross-platform window customization framework for Qt Widgets and Qt Quick. Supports Windows, Linux and macOS. -## Join with us :triangular_flag_on_post: +## Join with Us :triangular_flag_on_post: You can join our [Discord channel](https://discord.gg/grrM4Tmesy) to communicate with us. You can share your findings, thoughts and ideas on improving / implementing FramelessHelper functionalities on more platforms and apps! -## Roadmap for 2.2 +## Roadmap - Common: Add cross-platform blur behind window feature. - Common: Add cross-platform customizable system menu for both Qt Widgets and Qt Quick. Also supports both light and dark theme. @@ -17,7 +17,7 @@ You can join our [Discord channel](https://discord.gg/grrM4Tmesy) to communicate - Examples: Add demo projects that have transparent background and doesn't have rectangular window frame. - Feature requests are welcome! -## Highlights compared to 2.0 +## Highlights v2.1 - Windows: Added support for the snap layout feature introduced in Windows 11. - Widgets: Redesigned the public interface, the use of FramelessHelper is now more elegant. @@ -27,7 +27,7 @@ You can join our [Discord channel](https://discord.gg/grrM4Tmesy) to communicate - Misc: Removed bundled Qt internal classes that are licensed under Commercial/GPL/LGPL. This library is now pure MIT licensed. - Misc: Bug fixes and internal refactorings. -## Highlights compared to 1.x +## Highlights v2.0 - Windows: Gained the ability to only remove the title bar but preserve the window frame at the same time. - Windows: The flicker and jitter during window resizing is completely gone. @@ -61,6 +61,14 @@ You can join our [Discord channel](https://discord.gg/grrM4Tmesy) to communicate ![Dark](./doc/mac_dark.png) +## Use Cases + +### QVogenClient + +![QVogenClient](./doc/QVogenClient.png) + +Vogen editor using **QSynthesis** framework. Repository URL: . + ## Requiredments - Compiler: a modern compiler which supports C++17 at least. Tested on MSVC 2022 (Windows), GCC 11 (Linux) and Clang 13 (macOS). @@ -68,7 +76,7 @@ You can join our [Discord channel](https://discord.gg/grrM4Tmesy) to communicate - Qt modules: QtCore and QtGui for the core module; QtWidgets for the widgets module; QtQuick, QtQuickControls2 and QtQuickTemplates2 for the quick module. - CMake & ninja: the newer, the better. Other build systems are not tested. -## Supported platforms +## Supported Platforms - Windows: Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11 (only actively tested on Windows 10 & 11) - Linux: any modern Linux distros should work, but only tested on Ubuntu 20.04 and Ubuntu 22.04 @@ -86,7 +94,7 @@ cmake -DCMAKE_PREFIX_PATH= -DCMAKE_BUILD_TYPE=Release -GNi cmake --build . --config Release --target all --parallel ``` -**Important note**: On Linux you need to install the _GTK3_ and _X11_ development packages first. +**IMPORTANT NOTE**: On Linux you need to install the _GTK3_ and _X11_ development packages first. ## Use @@ -97,7 +105,7 @@ object is to call the static method `FramelessWidgetsHelper *FramelessWidgetsHel There are also two classes called `FramelessWidget` and `FramelessMainWindow`, they are only simple wrappers of `FramelessWidgetsHelper`, which just saves the call of the `void FramelessWidgetsHelper::extendsContentIntoTitleBar()` function for you. You can absolutely use plain `QWidget` instead. -#### Code snippet +#### Code Snippet First of all, call `void FramelessHelper::Core::initialize()` in your `main` function in a very early stage: @@ -148,7 +156,7 @@ void MyWidget::myFunction2() ### Qt Quick -#### Code snippet +#### Code Snippet First of all, you should call `void FramelessHelper::Core::initialize()` in your `main` function in a very early stage: @@ -250,14 +258,14 @@ Window { Please refer to the demo projects to see more detailed usages: [examples](./examples/) -### Title bar design guidance +### Title Bar Design Guidance - Microsoft: - KDE: - GNOME: - Apple: -## Platform notes +## Platform Notes ### Windows diff --git a/doc/QVogenClient.png b/doc/QVogenClient.png new file mode 100644 index 0000000000000000000000000000000000000000..1df4ea90118c59e3c99fc034f176bfb9365260ab GIT binary patch literal 32470 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