From 91f9178220ac4e6877b93889c820fee9ffd3fb5f Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周六, 27 4月 2024 21:42:44 +0800 Subject: [PATCH] update --- README.md | 46 +++++++++++++++++++++++++++++++++++++++------- 1 files changed, 39 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index c7f0d55..9268a82 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ |:---------:|:-----------:|:-------------------------:| | Qt | \>=5.12 | Core, Gui, Widgets, Quick | | Compiler | \>=C++17 | MSVC 2019, GCC, Clang | -| CMake | \>=3.17 | >=3.20 is recommended | +| CMake | \>=3.19 | >=3.20 is recommended | ### Tested Compilers @@ -85,7 +85,10 @@ ### Build & Install ```sh -cmake -B build \ +git clone --recursive https://github.com/stdware/qwindowkit +cd qwindowkit + +cmake -B build -S . \ -Dqmsetup_DIR=<dir> \ # Optional -DCMAKE_INSTALL_PREFIX=/path/install \ -G "Ninja Multi-Config" @@ -104,7 +107,7 @@ #### CMake Project ```sh -cmake -B build -DQWindowKit_DIR=/path/install/cmake/QWindowKit +cmake -B build -DQWindowKit_DIR=/path/install/lib/cmake/QWindowKit ``` ```cmake @@ -130,6 +133,21 @@ ## Quick Start ### Qt Widgets Application + +#### Initialization + +The following initialization should be done before any widget constructs. + +```cpp +#include <QtWidgets/QApplication> + +int main(int argc, char *argv[]) +{ + QGuiApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings) + + // ... +} +``` #### Setup Window Agent @@ -237,7 +255,8 @@ window.visible = true } WindowAgent { - // ... + id: windowAgent + // ... } } ``` @@ -251,19 +270,32 @@ + QWindowKit Internals [TODO] + [FramelessHelper Related](docs/framelesshelper-related.md) + +### Vulnerabilities + ++ Once you have made the window frameless, it will not be able to switch back to the system border. ++ There must not be any internal child widget with `Qt::WA_NativeWindow` property enabled, otherwise the native features and display may be abnormal. Therefore, do not set any widget that has called `QWidget::winId()` or `QWidget::setAttribute(Qt::WA_NativeWindow)` as a descendant of a frameless window. + + If you really need to move widgets between different windows, make sure that the widget is not a top-level window and wrap it with a frameless container. + ## TODO + Fix 5.15 window abnormal behavior -+ Support Mac system buttons customization for Quick + More documentations + When do we support Linux native features? ## Special Thanks -+ [Arabaku](https://github.com/Arabaku) + [Maplespe](https://github.com/Maplespe) + [zhiyiYo](https://github.com/zhiyiYo) ## License -QWindowKit is licensed under the Apache 2.0 License. \ No newline at end of file +QWindowKit is licensed under the [Apache 2.0 License](./LICENSE). + +<!-- + +**You MUST keep a copyright notice of QWindowKit in a prominent place on your project, such as the README document and the About Dialog.** + +**You MUST NOT remove the license text from the header files and source files of QWindowKit.** + +--> -- Gitblit v1.9.1