• 8597阅读
  • 4回复

怎么对tabwidget的上面tab设置不同的图片背景 [复制链接]

上一主题 下一主题
离线snowman_st
 
只看楼主 倒序阅读 楼主  发表于: 2009-07-06
tabwidget上面选择页的tab键,比如page1,page2.。。。。怎么把这几个tab键设置成不同的背景图片,我可以用qss设置成背景色,但是这种背景色必须相同,比如
QTabBar::tab{
    background-color: rgb(85, 0, 127);
     border: 2px solid #C4C4C3;
     border-bottom-color: #C2C7CB; /* same as the pane color */
     border-top-left-radius: 400px;
     border-top-right-radius: 4px;
     width: 90px;
     height: 30px  ;
     padding: 2px;
}


但是我想让page1和page2的tab是不同的背景,很急,谢谢了
离线shiroki

只看该作者 1楼 发表于: 2009-07-06
个人感觉tabbar里的键不能分着设背景,只能做成图片然后setTabIcon了
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线feiying888

只看该作者 2楼 发表于: 2009-07-07
其实page1和page2的tab实现不同的背景图片,个人感觉有两种方法:
第一种方法,正如楼上所说,用setTabIcon,用这种方法,不容易实现多种效果,比如鼠标经过、选中时切换不同的图片, 本人不常有这种方法。

第二种方法,还是用qss,跟你的用法不同的地方,就是,要把qss的设置写到代码里,分别对每个对象写相应的qss
以下是两个QPushButton,实现不同背景图片的例子:
           closeBt = new QPushButton( this);
    closeBt->setStyleSheet(
        "QPushButton{ border-image: url(:/images/close_button.png) ;}"
        "QPushButton:hover{ border-image: url(:/images/close_hover.png) ;}"
        "QPushButton:pressed{ border-image: url(:/images/close_down.png) ;}"
        );

    minimizeBt = new QPushButton( QObject::tr(""),this);
    minimizeBt->setStyleSheet(
        "QPushButton{ border-image: url(:/images/minimize_button.png) ;}"
        "QPushButton:hover{ border-image: url(:/images/minimize_hover.png) ;}"
        "QPushButton:pressed{ border-image: url(:/images/minimize_down.png) ;}"
        );

可以参考这个,写你相应的QTabBar qss代码。

以上是个人想法,仅供参考。如有不适,请高手指正。
离线snowman_st
只看该作者 3楼 发表于: 2009-07-07
谢谢
离线mmmou2000
只看该作者 4楼 发表于: 2009-07-08
如果你只有2页
可以试试
QTabBar::tab:first {




QTabBar::tab:last {

}

支持selected的 如  QTabBar::tab:first:selected {...}
------------------------------------------------
qt 4.5:
QWidget * QTabBar::tabButton ( int index, ButtonPosition position ) const
你可以获得这些tab, setObjectName, 用qss去定制 或者如3楼那样写代码
[ 此帖被mmmou2000在2009-07-08 01:05重新编辑 ]
快速回复
限100 字节
 
上一个 下一个