SUMMARY | 问题概要
Qt6下,添加Label到DMainWindow中,主题由浅色切到深色,观察标签文本颜色变化,标签文本颜色在深色主题显示为黑色,浅色主题下显示为白色。
Qt5下,主题切换标签颜色显示正常。
DTK and OS VERSIONS | DTK&系统版本信息
Distribution: v25 0909
Pacakge: libdtk6widget 6.0.19
Minimal Reproducible Case Code | 最小复现案例代码
Demo
themeDemo.zip
添加DLabel到DMainWindow的自定义控件timelineWidget中,并添加主题切换处理函数themeChangeSlot,示例代码:
void TimeLineView::themeChangeSlot(DGuiApplicationHelper::ColorType themeType)
{
DPalette pa1 = DPaletteHelper::instance()->palette(pTimeLineViewWidget);
pa1.setBrush(DPalette::Base, pa1.color(DPalette::Window));
m_dateNumItemWidget->setForegroundRole(DPalette::Window);
m_dateNumItemWidget->setPalette(pa1);
DPalette pa = DPaletteHelper::instance()->palette(m_dateLabel);
pa.setBrush(DPalette::Text, pa.color(DPalette::ToolTipText));
m_dateLabel->setForegroundRole(DPalette::Text);
m_dateLabel->setPalette(pa);
DPalette pal1 = DPaletteHelper::instance()->palette(m_numLabel);
QColor color_BT1 = pal1.color(DPalette::BrightText);
if (themeType == DGuiApplicationHelper::LightType) {
color_BT1.setAlphaF(0.5);
pal1.setBrush(DPalette::Text, color_BT1);
m_numLabel->setForegroundRole(DPalette::Text);
m_numLabel->setPalette(pal1);
} else if (themeType == DGuiApplicationHelper::DarkType) {
color_BT1.setAlphaF(0.75);
pal1.setBrush(DPalette::Text, color_BT1);
m_numLabel->setForegroundRole(DPalette::Text);
m_numLabel->setPalette(pal1);
}
}
OBSERVED RESULT | 观察到的结果
初始运行,qt5、qt6标签颜色均显示正常

qt6程序中,浅色主题切到深色,qt6程序标签颜色显示异常,qt5程序颜色显示正常。

qt6程序中,继续切换主题到浅色,qt6程序标签颜色显示异常,qt5程序颜色显示正常。

EXPECTED RESULT | 期望的结果
Qt6程序下,主题颜色切换,标签颜色显示与Qt5程序保持一致。
即:深色主题下,标签颜色应为浅色,浅色主题下,标签颜色应为深色。如下图所示:

ADDITIONAL INFORMATION | 额外补充
No response
SUMMARY | 问题概要
Qt6下,添加Label到DMainWindow中,主题由浅色切到深色,观察标签文本颜色变化,标签文本颜色在深色主题显示为黑色,浅色主题下显示为白色。
Qt5下,主题切换标签颜色显示正常。
DTK and OS VERSIONS | DTK&系统版本信息
Distribution: v25 0909
Pacakge: libdtk6widget 6.0.19
Minimal Reproducible Case Code | 最小复现案例代码
Demo
themeDemo.zip
添加DLabel到DMainWindow的自定义控件timelineWidget中,并添加主题切换处理函数themeChangeSlot,示例代码:
OBSERVED RESULT | 观察到的结果
初始运行,qt5、qt6标签颜色均显示正常



qt6程序中,浅色主题切到深色,qt6程序标签颜色显示异常,qt5程序颜色显示正常。
qt6程序中,继续切换主题到浅色,qt6程序标签颜色显示异常,qt5程序颜色显示正常。
EXPECTED RESULT | 期望的结果
Qt6程序下,主题颜色切换,标签颜色显示与Qt5程序保持一致。

即:深色主题下,标签颜色应为浅色,浅色主题下,标签颜色应为深色。如下图所示:
ADDITIONAL INFORMATION | 额外补充
No response