gpt4 book ai didi

c++ - QWidget/QWindow 标题栏 : custom look, 原生感觉(类似Chrome)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:44:56 26 4
gpt4 key购买 nike

我知道如何使 QWidget(在 Qt4 或 Qt5 中)/QWindow(自 Qt5 起)无边框,绘制自定义标题栏并手动实现鼠标拖动以通过简单地跟踪鼠标位置来在屏幕上移动窗口 mouseMoveEvent 并更新窗口位置。

但是,此移动的行为不同于窗口管理器实现的 native 移动。例如,将窗口移动到屏幕边界附近可以解释为“全屏”或“分屏”;或窗口对齐彼此的边界,具体取决于系统/窗口管理器。如果您像上面那样实现窗口移动,这些东西将不起作用。

Google Chrome/Chromium 只是实现自定义窗口标题栏和边框的应用程序的一个示例,同时仍适应窗口管理器的 native 行为。我想知道 Chrome 是否自己实现了这些(并检测窗口管理器及其配置),或者大多数窗口管理器是否有一些功能(显然,这仍然高度依赖于平台)来告诉“开始 native 窗口移动”和“停止 native 窗口移动”或类似内容。

在 Qt 中可以实现类似的功能吗?如果没有,也许使用其他一些库,如 Qxt?

仅供引用:我主要针对 Windows 和 Linux,我发现用户很难安装任何窗口管理器。

最佳答案

基于最近对 Qt4 的尝试,我担心答案是,您需要调整这个每个平台/每个窗口的管理器。我希望 QWindow 的补丁能够改善这方面的行为,但我不知道有任何标准的钩子(Hook)可以告诉操作系统/窗口管理器你想要实现什么。

同样,Qt 不应该“妨碍”解决这个问题,它只是一个无法以通用方式帮助您的领域。

关于c++ - QWidget/QWindow 标题栏 : custom look, 原生感觉(类似Chrome),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14696484/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com