NCurses& Ubuntu终端:切换终端时颜色会发生变化

时间:2014-01-29 14:29:37

标签: linux ubuntu ncurses

当我退出终端(Ubuntu终端)并重新登录时,程序的颜色已经改变。它们不会随机变化,而是变为特定的颜色。

我的setColor函数,它返回一个unsigned int ...

unsigned int Console::setColor(float r, float g, float b, float r2, float g2, float b2) {

    bool bkgd = true;
    if (r2 == -1.f || g2 == -1.f || b2 == -1.f) {
        bkgd = false;
    }

    clamp(r);
    clamp(g);
    clamp(b);
    clamp(r2);
    clamp(g2);
    clamp(b2);

    init_color(instance().colorNum * 2, static_cast<int>(r * 1000.f), static_cast<int>(g * 1000.f), static_cast<int>(b * 1000.f));
    init_color(instance().colorNum * 2 + 1, static_cast<int>(r2 * 1000.f), static_cast<int>(g2 * 1000.f), static_cast<int>(b2 * 1000.f));
    if(bkgd) {
        init_pair(instance().colorNum, instance().colorNum * 2, instance().colorNum * 2 + 1);
    } else {
        init_pair(instance().colorNum, instance().colorNum * 2, -1);
    }

    return ++instance().colorNum - 1;

}

...我可以在此功能中使用它来激活颜色:

void Console::useColor(unsigned int pair) {

    wattron(win(), COLOR_PAIR(pair));

}

编辑:看起来它与Ubuntu终端有关。使用xterm,它可以工作。此外,颜色值不会改变,所以它可能与Ubuntu终端的紫色有关吗?

0 个答案:

没有答案