标题:QTabwidget 中QTabbar的风格设置问题
作者:liuyipower
日期:2008-08-25 13:28
内容:
我做了一个QTabwidget,设置了4个标签,我现在想让每个标签用单独的背景图片来填充
我现在已经做到了让同一个背景图来填充的QTabbar这个类,但是我不知道应该怎么单独给他们设置图片呢?
我把我实现的方法给大家看下,不知道有没有高手能解决我的问题,谢谢
QTabWidget *tabview = new QTabWidget(win);
tabview->setStyleSheet("QTabWidget::pane{border-width:0px;}\
QTabWidget::tab-bar{border-width:0px;}\
QTabBar::tab {background-image: url(:/OK/skins/tab button.png);\
border-bottom-color: #C2C7CB;\
border-top-left-radius: 0px;\
border-top-right-radius: 0px;\
min-width: 140px;min-height: 116px;\
padding: 0px;\
}\
\
QTabBar::tab:!selected {\
margin-top: 0px;\
}\
QTabBar::tab:selected {\
background-image: url(:/OK/skins/musicselect.png);\
}\
QTabBar::tab:first:selected {\
margin-left: 0;\
}\
QTabBar::tab:last:selected {\
margin-right: 0;\
}\
QTabBar::tab:only-one {\
margin: 0;\
}");
#1 [liuyipower 08-25 14:51]
哎,论坛无高人?
#2 [iiiyyyhhhsss 10-23 22:52]
最近我也想了解这个,单独设置标签风格
#3 [rqzrqh 10-24 08:41]
获得单独的指针,一个 一个用stylesheet设置
#4 [iiiyyyhhhsss 10-24 08:58]
能否贴段获取指针的代码出来看看呢?我相信这样会帮了很多人
不过有一种情况是,就算获取了指针,那个标签类不是QWidget的子类,
不一定有setStyleSheet()这个成员函数
#5 [rqzrqh 10-24 09:44]
肯定是QWidget的类的,不是QWidget的子类是无法显示的。
QTabBar应该是整个栏,而不是一个标签,看了QTabWidget的源码发现实际上它只有一个QTabBar指针。一直以为一个标签就是一个QTabBar,实际上应该是n个标签也是一个QTabBar。QTabBar是QTabWidget中所有标签的组合。
函数QTabBar* QTabWidget::tabBar()可以获得QTabBar的指针,但是这个函数是保护的,所以必须要继承一次QTabWidget才可以获得这个指针。
获得QTabWidget的指针后用at(int index)应该可以获得单个的指针