gpt4 book ai didi

c++ - 如何使用相同样式的 "Re-Polish"QApplication?

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

在我的 qt5 应用程序初始化时,QApplication 实例提供了一个继承自 QProxyStyle 的自定义样式类。

此类重写了void polish(QPalette &palette) 函数以更改应用程序的一般配色方案。

例如:

#include "mycolormanager.h"

void MyStyle::polish(QPalette &palette) {
palette.setBrush(QPalette::Window, MyColorManager::getWindowColor());
palette.setColor(QPalette::WindowText, MyColorManager::getTextColor());
palette.setColor(QPalette::Disabled, QPalette::WindowText, MyColorManager::getDisabledTextColor());
palette.setColor(QPalette::Base, MyColorManager::getBaseColor());
// etc...
}

但是,我希望允许用户自定义应用程序的配色方案。一旦用户选择了新颜色,我需要以某种方式“重新应用”样式,以便该函数可以再次运行并从假设的“颜色管理器”类中获取新颜色。

这将如何完成?

最佳答案

相反,您可以调用下面的静态函数并应用所需的调色板。

void QApplication::setPalette(const QPalette &palette, const char *className = nullptr);

选择新配色方案后创建新的调色板对象,并将其传递给上述函数。如果您希望更改应用于特定的小部件,您可以指定类名。

关于c++ - 如何使用相同样式的 "Re-Polish"QApplication?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50845738/

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