C++ I';我正在尝试使用官方Qt4.8文档中的qtabar::pane样式表

C++ I';我正在尝试使用官方Qt4.8文档中的qtabar::pane样式表,c++,css,qt,C++,Css,Qt,我阅读了关于qstylesheet的主题,并尝试在我的应用程序中实现它 tabsMain->setStyleSheet( "QTabWidget::pane {" " background-color: red; background-image: url(:/prefix1/images/patern.png); " " background-position: top left;" " background-repeat: repeat-xy;" "}" "QTabBar:

我阅读了关于qstylesheet的主题,并尝试在我的应用程序中实现它

tabsMain->setStyleSheet(
"QTabWidget::pane {"
"   background-color: red; background-image: url(:/prefix1/images/patern.png); "
"   background-position: top left;"
"   background-repeat: repeat-xy;"
"}"
"QTabBar::tab:selected, QTabBar::tab:hover {"
"   background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,"
"                               stop: 0 #fafafa, stop: 0.4 #f4f4f4,"
"                               stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);"
"}"
);
但一切都没有改变。我试图在Qt4.8.1(样式“qtabar::pane”的处理)的源代码中找到此项,这就是我发现的全部内容:

QtSDK\QtSources\4.8.1\src\gui\style\qstylesheetstyle.cpp

276:      QStyle::SC_None, "pane"

它没有在这个版本的Qt中实现,或者可能只在我的操作系统中实现?

样式表对Qt小部件的影响取决于所选的QStyle


在Qt designer中的QTabWidget上使用您的示例样式表时,除了GTK+样式和Cleanlooks样式外,该小部件的窗格在所有QS样式中的颜色都正确。

我忘了添加我的操作系统是Windows(由于使用COM技术创建的第三方库,无法使用unix机器),因此GTK+无法解释此问题。正如我前面提到的,现在在Qt源代码中我找不到字符串“pane”。现在,我将尝试在linux/mac的Qt5和win以及linux/mac的Qt4的源代码中查找此样式的处理。在
qstylesheetstyle.cpp
中找到的“pane”行只是伪元素
伪元素的定义,因此您应该搜索该字符串。是的,您说得对!枚举伪元素中的元素对应于struct PseudoElementInfo的数组knownPeudoElements的元素。所以,我决定在QTabWidget的源代码中研究这个问题。。。如果什么也没有发生,那么您必须在QSS中设置一个border属性。这是windows上Qt样式的一个“功能”。非常感谢,Dmitry!我添加了border top属性,得到了我想要的东西。