From 88b91b1fec752538beebca2fd92e62c8e03f32d4 Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <zhaoyuhang@rankyee.com> Date: 周二, 19 12月 2023 16:55:39 +0800 Subject: [PATCH] update win11 picture --- README.md | 74 ++++++++++++++++++++++++++++++++----- 1 files changed, 64 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 5b0f685..040e5fb 100644 --- a/README.md +++ b/README.md @@ -4,23 +4,38 @@ This project inherited most of [wangwenx190 FramelessHelper](https://github.com/wangwenx190/framelesshelper) implementation, with a complete refactoring and upgrading of the architecture. +## Screenshots + +### Windows + + + +### Linux + + + +### macOS + + + ## TODO + Fix 5.15 window abnormal behavior + Fix window 10 top border color in dark background + Fix `isFixedSize` code + Support customized system button area on Mac -+ Make Linux system move/resize more robust ++ Implement Mac window context hook ++ Support window attribute switching on Windows ## Supported Platforms -+ Microsoft Windows (Vista ~ 11) -+ Apple Mac OSX (11+) -+ GNU/Linux (Tested on Ubuntu) ++ Microsoft Windows ++ Apple macOS (11+) ++ GNU/Linux ## Requirements -| Component | Requirement | Detailed | +| Component | Requirement | Details | |:---------:|:-----------:|:------------------------------------:| | Qt | \>=5.15 | Core, Gui, Widgets, Quick | | Compiler | \>=C++17 | MSVC 2019, GCC, Clang | @@ -30,8 +45,8 @@ + Windows + MSVC: 2019, 2022 - + MinGW: 13.2.0 -+ MacOSX + + MinGW (GCC): 13.2.0 ++ macOS + Clang 14.0.3 + Ubuntu + GCC: 9.4.0 @@ -95,7 +110,7 @@ MyWidget::MyWidget(QWidget *parent) { // ... - auto agent = new WidgetWindowAgent(w); + auto agent = new QWK::WidgetWindowAgent(w); agent->setup(w); // ... } @@ -104,9 +119,11 @@ You can also initialize the agent after the window constructs. ```c++ auto w = new MyWidget(); -auto agent = new WidgetWindowAgent(w); +auto agent = new QWK::WidgetWindowAgent(w); agent->setup(w); ``` + + Then, construct your title bar widget, without which the window lacks the basic interaction feature, and it's better to put it into the window's layout. @@ -132,7 +149,44 @@ ### Qt Quick Application -TODO +Make sure you have registered QWK into QtQuick: + +```cpp +// ... +#include <QWKQuick/qwkquickglobal.h> +// ... + +int main(int argc, char *argv[]) +{ + // ... + QQmlApplicationEngine engine; + // ... + QWK::registerTypes(&engine); + // ... +} +``` + +Then you can use QWK data types and classes by importing it's URI: + +```qml +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QWindowKit 1.0 + +Window { + id: window + visible: false // We hide it first, so we can move the window to our desired position silently. + Component.onCompleted: { + windowAgent.setup(window) + window.visible = true + } + WindowAgent { + // ... + } +} +``` + +You can omit the version number or use "auto" instead of "1.0" for the module URI if you are using Qt6. ### Learn More -- Gitblit v1.9.1