| | |
| | | |
| | | Support as many system native features as possible without requiring additional dependencies. |
| | | |
| | | <!-- ## Why using QWindowKit? |
| | | |
| | | Here're why `QWindowKit` is better than `FramelessHelper`: |
| | | |
| | | + Full support of Windows 11 Snap Layout |
| | | + Most of the redundant codes and architectural flaws are eliminated, and the binary size compiled by MSVC is about 1/9 of `FramelessHelper` |
| | | + A critical issue that moving window forces the entire window to be repainted on Windows is fixed |
| | | + Capable to cope with WinId mutation, and `QWebEngineView` is perfectly supported |
| | | + Simpler APIs, more detailed documentation and comments |
| | | + A lot of bugs are fixed |
| | | |
| | | Feature requests are welcome. --> |
| | | |
| | | ## Supported Platforms |
| | | |
| | | + Microsoft Windows |
| | |
| | | |
| | | ## Dependencies |
| | | |
| | | + Qt 5.15 or higher |
| | | + Qt 5.12 or higher |
| | | + [qmsetup](https://github.com/stdware/qmsetup) |
| | | |
| | | ## Integrate |
| | |
| | | } |
| | | ``` |
| | | |
| | | You can also initialize the agent after the window constructs. |
| | | If you don't want to derive a new widget class or change the constructor, you can initialize the agent after the window constructs. |
| | | |
| | | ```c++ |
| | | auto w = new MyWidget(); |
| | |
| | | Let `WidgetWindowAgent` know which widget the title bar is. |
| | | |
| | | ```c++ |
| | | agent->setTitleBarWidget(myTitleBar); |
| | | agent->setTitleBar(myTitleBar); |
| | | ``` |
| | | |
| | | Next, set system button hints to let `WidgetWindowAgent` know the role of the child widgets, which is important for the Snap Layout to work. |