有人知道如何去掉 QTabWidget 中所有选项卡下的细线,以便它更像是 Maya 原生的 UI 吗?我尝试了 ("QTabWidget::pane {border: 0pxsolid #000000;}") 的样式表,它确实删除了它,但由于某种原因破坏了更多的东西,使未选定的选项卡与选定的选项卡一样轻,不知道为什么,猜猜我的样式表经验让我失望。 (取消下面代码中样式纯粹线的注释)谢谢
from PySide2 import QtWidgets
class Tab1(QtWidgets.QWidget):
def __init__(self, parent=None, ):
super(Tab1, self).__init__(parent)
main_layout = QtWidgets.QVBoxLayout(self)
main_layout.addWidget(QtWidgets.QLabel("Tab:"))
main_layout.addStretch()
class TabWidgetTesting(QtWidgets.QDialog):
def __init__(self, parent=None):
super(TabWidgetTesting, self).__init__(parent=parent)
self.setMinimumSize(240, 320)
self.create_widgets()
self.create_layouts()
def create_widgets(self):
self.Tab1 = Tab1()
self.Tab2 = Tab1()
self.tab_widget = QtWidgets.QTabWidget()
#self.tab_widget.setStyleSheet("QTabWidget::pane {border: 0px solid #000000;}")
self.tab_widget.addTab(Tab1(), "Tab 1")
self.tab_widget.addTab(Tab1(), "Tab 2")
def create_layouts(self):
main_layout = QtWidgets.QVBoxLayout(self)
main_layout.addWidget(self.tab_widget)
if __name__ == "__main__":
test_dialog = TabWidgetTesting()
test_dialog.show()
我希望 Maya 的内部样式能够处理这个问题,并且让它们看起来与原生样式相同,而没有下面的小线
您可以使用以下 css 来消除
QTabWidget
中所有选项卡下的细线,使其看起来更像原生 Maya UI:
self.tab_widget.setStyleSheet("QTabBar::tab { border: 0; padding: 8px; }")
这是更新后的代码:
from PySide2 import QtWidgets
class Tab1(QtWidgets.QWidget):
def __init__(self, parent=None):
super(Tab1, self).__init__(parent)
main_layout = QtWidgets.QVBoxLayout(self)
main_layout.addWidget(QtWidgets.QLabel("Tab:"))
main_layout.addStretch()
class TabWidgetTesting(QtWidgets.QDialog):
def __init__(self, parent=None):
super(TabWidgetTesting, self).__init__(parent=parent)
self.setMinimumSize(240, 320)
self.create_widgets()
self.create_layouts()
def create_widgets(self):
self.Tab1 = Tab1()
self.Tab2 = Tab1()
self.tab_widget = QtWidgets.QTabWidget()
self.tab_widget.setStyleSheet("QTabBar::tab { border: 0; padding: 8px; }")
self.tab_widget.addTab(Tab1(), "Tab 1")
self.tab_widget.addTab(Tab1(), "Tab 2")
def create_layouts(self):
main_layout = QtWidgets.QVBoxLayout(self)
main_layout.addWidget(self.tab_widget)
if __name__ == "__main__":
test_dialog = TabWidgetTesting()
test_dialog.show()
此 CSS 更改应该消除选项卡后面的线条,使它们看起来更像原始的 Maya UI。调整
QTabBar::tab
选区中的填充和其他属性以实现所需的外观。