更改 Konsole CSS 中紫色选项卡文本的颜色

问题描述 投票:0回答:2

当输入进入未激活的选项卡时,选项卡的文本将变为紫色。我需要使用什么 CSS 选择器来更改此设置?

我在 Konsole 中使用自定义样式表来更改选项卡的外观,但不知道如何更改此值。 此页面没有提及它。

我在 Xubuntu 14.04(XFCE) 上使用 Konsole 2.13.2(KDE 4.13.3)。

qt qt4 qtstylesheets konsole qtabbar
2个回答
1
投票

截至今天,此选项卡活动颜色似乎是由

设置的
void TabbedViewContainer::setTabActivity(int index , bool activity)
{
    const QPalette& palette = _tabBar->palette();
    KColorScheme colorScheme(palette.currentColorGroup());
    const QColor colorSchemeActive = colorScheme.foreground(KColorScheme::ActiveText).color();

    const QColor normalColor = palette.text().color();
    const QColor activityColor = KColorUtils::mix(normalColor, colorSchemeActive);

    QColor color = activity ? activityColor : QColor();

    if (color != _tabBar->tabTextColor(index))
        _tabBar->setTabTextColor(index, color);
}

在 konsole 的

src/ViewContainer.cpp
中,因此可能超出了 Konsole 中配置的自定义样式表的范围。

注意

KColorScheme::ActiveText
如何与
normalColor
混合。 您可以通过更改 KDE 系统设置 -> 颜色 -> 颜色选项卡 -> 活动文本中的“活动文本”颜色来对颜色产生一些影响。 Konsole 必须重新启动才能使更改生效。


0
投票

要突出显示焦点选项卡,可以克隆 konsole repo 并在其中添加一些代码。

src/widgets/TerminalHeaderBar.h

class TerminalHeaderBar
定义:

private:
    QPalette m_palette = QPalette();

src/widgets/TerminalHeaderBar.cpp

TerminalHeaderBar::paintEvent()
实现:

void TerminalHeaderBar::paintEvent(QPaintEvent *paintEvent)
{
    if (m_terminalIsFocused) {
        m_palette.setColor(QPalette::WindowText, QColor(200, 200, 50));
        m_palette.setColor(QPalette::Window, QColor(50, 50, 0));
    } else {
        m_palette.setColor(QPalette::WindowText, QColor(200, 200, 200));
        m_palette.setColor(QPalette::Window, QColor(46, 48, 43));
    }

    setPalette(m_palette);

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.