如何在Python中去除QTabWidget周边的边距?
去除Qt5中QTabWidget与窗口的边距
你遇到的边距问题主要来自两个核心点:布局的默认内边距,以及QTabWidget自身的样式边距。以下是具体解决方法:
1. 清除布局的内边距
你的代码已经设置了布局的水平/垂直间距,但QGridLayout默认带有内容边距(Contents Margins),这是QTabWidget和窗口边缘出现空隙的主要原因。只需在初始化布局时添加一行代码,将边距直接设为0:
self.layout.setContentsMargins(0, 0, 0, 0)
2. 移除QTabWidget的样式边距(可选)
如果设置布局边距后仍有细微空隙,可以通过样式表清除QTabWidget面板的边框和内置边距:
self.tabwidget.setStyleSheet("QTabWidget::pane { border: none; margin: 0; }")
修改后的完整代码
class App(QWidget): def __init__(self) -> None: super().__init__() self.layout = QGridLayout() self.setLayout(self.layout) self.layout.setHorizontalSpacing(0) self.layout.setVerticalSpacing(0) # 清除布局内边距 self.layout.setContentsMargins(0, 0, 0, 0) self.tabs = [] self.tabwidget = QTabWidget() # 可选:清除QTabWidget面板的边框与边距 self.tabwidget.setStyleSheet("QTabWidget::pane { border: none; margin: 0; }") self.layout.addWidget(self.tabwidget, 0, 0) self.add_tab("Home", "asd") self.showMaximized() def add_tab(self, title: str, url: str): tab = browser.tab.Tab() tab.load("https://www.google.com") self.tabwidget.addTab(tab, title)
内容的提问来源于stack exchange,提问作者Yomada Cheezit
相关产品推荐
相关产品推荐

