Skip to content

[dtk6widget] 深色浅色主题切换,标签颜色显示异常 #203

Description

@starhcq

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标签颜色均显示正常
Image
qt6程序中,浅色主题切到深色,qt6程序标签颜色显示异常,qt5程序颜色显示正常。
Image
qt6程序中,继续切换主题到浅色,qt6程序标签颜色显示异常,qt5程序颜色显示正常。
Image

EXPECTED RESULT | 期望的结果

Qt6程序下,主题颜色切换,标签颜色显示与Qt5程序保持一致。
即:深色主题下,标签颜色应为浅色,浅色主题下,标签颜色应为深色。如下图所示:
Image

ADDITIONAL INFORMATION | 额外补充

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions