Skip to content
This repository has been archived by the owner on Dec 19, 2023. It is now read-only.

windows平台:当窗体为非激活状态时,最小最大按钮悬浮色仍为激活状态时的悬浮色 #243

Open
saltiest-fish opened this issue Jul 19, 2023 · 13 comments
Assignees
Labels
bug Something isn't working

Comments

@saltiest-fish
Copy link

使用深色主题时,一般窗体为非激活状态时,标题栏为白色,按钮的悬浮色应该是浅灰色,目前按钮的悬浮色并没有区分窗体激活状态和非激活状态的情况

@wangwenx190
Copy link
Owner

可否贴几张图片供参考?

@kira-96
Copy link
Contributor

kira-96 commented Nov 9, 2023

建议将标题栏按钮的悬浮色设置成有透明度的颜色,这样可以自适应标题栏的颜色,看起来会好很多。

下面是我在windows上调整后的颜色,跟系统样式基本一致。

if (isDark) {
    m_titleBar->chromePalette()->setChromeButtonHoverColor(QColor(0xFF, 0xFF, 0xFF, 12));
    m_titleBar->chromePalette()->setChromeButtonPressColor(QColor(0xFF, 0xFF, 0xFF, 6));
} else {
    m_titleBar->chromePalette()->setChromeButtonHoverColor(QColor(0, 0, 0, 12));
    m_titleBar->chromePalette()->setChromeButtonPressColor(QColor(0, 0, 0, 6));
}

还有一个问题就是在亮色主题下,鼠标悬浮在“关闭”按钮上时显示的是黑色叉叉,但系统窗口却始终显示红底白色叉叉。这个暂时没想好怎么改,可能需要对源码动手。

@wangwenx190 wangwenx190 self-assigned this Nov 10, 2023
@wangwenx190 wangwenx190 added the bug Something isn't working label Nov 10, 2023
@wangwenx190
Copy link
Owner

建议将标题栏按钮的悬浮色设置成有透明度的颜色,这样可以自适应标题栏的颜色,看起来会好很多。

下面是我在windows上调整后的颜色,跟系统样式基本一致。

if (isDark) {
    m_titleBar->chromePalette()->setChromeButtonHoverColor(QColor(0xFF, 0xFF, 0xFF, 12));
    m_titleBar->chromePalette()->setChromeButtonPressColor(QColor(0xFF, 0xFF, 0xFF, 6));
} else {
    m_titleBar->chromePalette()->setChromeButtonHoverColor(QColor(0, 0, 0, 12));
    m_titleBar->chromePalette()->setChromeButtonPressColor(QColor(0, 0, 0, 6));
}

还有一个问题就是在亮色主题下,鼠标悬浮在“关闭”按钮上时显示的是黑色叉叉,但系统窗口却始终显示红底白色叉叉。这个暂时没想好怎么改,可能需要对源码动手。

@kira-96 麻烦你帮忙看看这个函数怎么改一下能达到你那边的效果呢:

QColor Utils::calculateSystemButtonBackgroundColor(const SystemButtonType button, const ButtonState state)

@kira-96
Copy link
Contributor

kira-96 commented Nov 10, 2023

已经做了修改,不知道是否合适?

https://github.com/kira-96/framelesshelper/commit/7713230e6b5457db64fe3a671f492b5bffe2d20f

image
image

@kira-96
Copy link
Contributor

kira-96 commented Nov 10, 2023

还有一个问题就是在亮色主题下,鼠标悬浮在“关闭”按钮上时显示的是黑色叉叉,但系统窗口却始终显示红底白色叉叉。这个暂时没想好怎么改,可能需要对源码动手。

这个问题也修改了。

https://github.com/kira-96/framelesshelper/commit/a0fcb0ae6df6767a24f217b6c31b1d8265a23933

image

@wangwenx190
Copy link
Owner

@kira-96 代码看了,没什么问题。麻烦你提个PR吧,谢谢!

wangwenx190 pushed a commit that referenced this issue Nov 11, 2023
* 窗口关闭按钮鼠标悬浮时的前景色修改为白色

* #243 修改系统按钮的鼠标悬浮背景色和按下时背景色

---------

Co-authored-by: yangzhenghan <yangzhenghan@sinap.ac.cn>
@wangwenx190
Copy link
Owner

@kira-96 合并你的PR后,感觉hover颜色好像有点浅过头了

@wangwenx190
Copy link
Owner

alpha值设置的有点太小了吧?

@kira-96
Copy link
Contributor

kira-96 commented Nov 13, 2023

alpha值设置的有点太小了吧?

我这边是对比windows系统窗口调整的,个人感觉上基本一致。如果你觉得太小,可以做一些修改,但建议不要把alpha设太大。

@wangwenx190
Copy link
Owner

alpha值设置的有点太小了吧?

我这边是对比windows系统窗口调整的,个人感觉上基本一致。如果你觉得太小,可以做一些修改,但建议不要把alpha设太大。

你对比的哪个窗口?我基于深色主题下Win11 23H2的文件管理器看了看,hover时的白色背景要明显更明显。

@kira-96
Copy link
Contributor

kira-96 commented Nov 13, 2023

文件管理器标题栏
image
image
自定义的标题栏
image
image

我觉得差不多啊。难道系统主题有差别?

@wangwenx190
Copy link
Owner

FramelessHelper你是基于最新代码构建的吗

@kira-96
Copy link
Contributor

kira-96 commented Nov 16, 2023

FramelessHelper你是基于最新代码构建的吗

使用的你修改后的版本 7fdea56

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants