要写一个 qtabwidget 的子类,qtabwidget 有一个 QTabBar * tabBar () const 函数,这个函数返回的就是 qtab 的整个标志。
这样可以设置前景色
tabwidget->tabBar()->setTabTextColor ( int index, const QColor & color )
但是想要设置背景色,那有点儿痛苦了:
接着写一个 QTabBar 的子表 MyTabBar, QTabBar 有一个方法 void initStyleOption ( QStyleOptionTab * option, int tabIndex ) const 在子表中把它设置为 pubilc。
然后:
QStyleOptionTab option;
option.initFrom(this);
QPalette palette = this->palette ();
palette.setColor (ColorGroup group, ColorRole role /*QPalette::Window*/, const QColor & color);
option.palette = palette;
qobject_cast<MyTabBar *>(tabwidget->tabBar())->initStyleOption (&option, int tabIndex );
这个方法我自己没有测试过,而且写的也只是大概的,具体的内容还是要看你自己的实际处理情况。