2013-04-26 129 views
0

我试图设计样式化QTabWidget以修改选项卡的外观,并在底部添加蓝色边框。样式化QTabWidget,只在选项卡窗口小部件上添加底部边框*不起作用

当我为QWidget设置border-bottom样式时,每个窗口小部件都会出现一个蓝色边框 - 包括我想要的一个,QTabWidget,但也包括其他所有窗口小部件,我不想这样做。看到这个截图:

enter image description here

这似乎是有前途的,因为它似乎一切我需要做的是设置bottom-borderQTabWidget,而不是QWidget为一体。但是,这并不工作,因为这截图显示:

enter image description here

这里是我的完整样式 - 它的Qt Designer中设置的QTabWidget

QTabWidget { 
border-bottom: 3px solid #3233ff; 
} 

QTabBar::tab:selected { 
border-left: 1px solid #1c1515; 
padding-left: 10px; 
border-right: 1px solid #1c1515; 
padding-right: 10px; 
border-bottom: 1px solid #1c1515; 
border-top: 1px solid #a0a0a0; 
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, 
           stop: 0 #ededed, stop: 0.7 #9898ff, 
           stop: 0.9 #7e7fff, stop: 1.0 #3233ff); 
} 

QTabBar::tab:!selected { 
border-left: 1px solid #1c1515; 
padding-left: 10px; 
border-right: 1px solid #1c1515; 
padding-right: 10px; 
border-bottom: 1px solid #1c1515; 
border-top: 1px solid #a0a0a0; 
margin-bottom: 2px; 
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, 
           stop: 0 #e0e0e0, stop: 0.4 #dbdbdb, 
           stop: 0.5 #d3d3d3, stop: 1.0 #cfcfcf); 
} 

我必须做的就是蓝色底部边框出现 - 但仅限于QTabWidget?

回答

1

使用正确的选择:QTabWidget ::窗格

+0

我尝试过各种可能性,使用'QTabWidget :: pane',而且可悲的是,他们都没有预期的效果。关于StackOverflow和/或其他地方的其他问题表明,更好的方法是使用'QWidget'选择器(然后在子窗口小部件中覆盖);如截图所示,这种方法看起来很有前途。尽管如此,在此期间,我通过继承'QTabWidget',将QTabWidget提升为这个子类,并且在其子QTabBar实例上调用'setDrawBase(false)'来解决这个问题。 – 2013-04-28 21:28:23

+0

我不能再多说那里了:http://doc.qt.digia.com/4.7/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar – 2013-04-29 09:01:38

+0

我在那个链接(和其他人的例子中玩过)广泛发布我的问题之前。 – 2013-04-30 09:38:34

相关问题