Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
starhcq opened this issue Oct 22, 2024 · 0 comments
Open

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

starhcq opened this issue Oct 22, 2024 · 0 comments

Comments

@starhcq
Copy link

starhcq commented Oct 22, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant