• 9437阅读
  • 9回复

关于QTabBar的  tab 颜色!!!!! [复制链接]

上一主题 下一主题
离线rockyluo
 

只看楼主 倒序阅读 楼主  发表于: 2008-12-08
— 本帖被 XChinux 执行加亮操作(2008-12-08) —
想问下怎么改变QTabBar的当前tab的颜色,让其不同于其它tab。
现在所有tab都是系统那个默认显示状态。
看了下文档 ,  QTab是直接继承于Qt类的 。
试着用不合规则的setPalette()来直接设置tab,编译通过了 也能运行  但是没啥改变。。。。。
谁有什么方法 或 思路 
望赐教!!!!!!!!!!
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线lazybone
只看该作者 1楼 发表于: 2008-12-11
选中的tab为黑色:
QTabBar::tab:selected{
        background: black;

添加CSS可以搜索历史帖
离线cspp

只看该作者 2楼 发表于: 2008-12-11
Re:关于QTabBar的  tab 颜色!!!!!
可以具体一点说书思路吗?
离线lazybone
只看该作者 3楼 发表于: 2008-12-11
使用css
离线rockyluo

只看该作者 4楼 发表于: 2008-12-11
老大  假如开发环境是QT/E的嘞???
似乎用不了CSS
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线lazybone
只看该作者 5楼 发表于: 2008-12-11
不是开源么 把他框架改了 让他不支持CSS =。=
离线rockyluo

只看该作者 6楼 发表于: 2008-12-11
刚找到了钟方法  重写  QTabBar

试了  能成!!!
代码如下:

#include <qapplication.h>
#include <qtabbar.h>
#include <qtabwidget.h>
#include <qpainter.h>
#include <qvbox.h>
class TabBar : public QTabBar
{
public:    TabBar( QWidget * parent );
        void paint ( QPainter * p, QTab * t, bool selected ) const;
private:        QTab *tab1;
        QTab *tab2;   
        QTab *tab3;
};

TabBar::TabBar( QWidget * parent ): QTabBar( parent )
{   
    tab1 = new QTab("One");   
    tab2 = new QTab("Two");   
    tab3 = new QTab("Three");   
    addTab(tab1);   
    addTab(tab2);   
    addTab(tab3);
}

void TabBar::paint ( QPainter * p, QTab * t, bool selected ) const
{   
    if(selected)
    {               
        p->setBrush(Qt::red);               
        p->drawRect(t->rect());   
    }     
    QTabBar::paint(p, t, selected);
}

class TabWidget : public QTabWidget
{
    public:    TabWidget();
};

TabWidget::TabWidget() : QTabWidget()
{   
    TabBar *bar = new TabBar(this);   
    setTabBar(bar);
}

int main(int argc, char **argv)
{   
    QApplication app(argc, argv);   
    TabWidget box;   
    app.setMainWidget(&box);   
    box.show();   
    return app.exec();
}
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线xiaoguo2774
只看该作者 7楼 发表于: 2009-01-12
Re:关于QTabBar的  tab 颜色!!!!!
你是哪个版本的,所谓的方法里paint这个方法没有,QTab是哪里的东西也没有
离线long5337

只看该作者 8楼 发表于: 2009-01-18
好东东!!!
离线kron

只看该作者 9楼 发表于: 2009-05-26
Re:关于QTabBar的  tab 颜色!!!!!
css
快速回复
限100 字节
 
上一个 下一个