如何删除 QTabWidget 的“填充”?

Posted

技术标签:

【中文标题】如何删除 QTabWidget 的“填充”?【英文标题】:How can I remove the "padding" of a QTabWidget? 【发布时间】:2017-02-15 16:35:21 【问题描述】:

我有一个QTabWidget,里面有一个QTableWidget,如下例所示:

但它在QTabWidget(图中标记为红色)中有一个“填充”(至少我认为是填充)。

如何删除或扩展 QTableWidget 以填充 QTabWidget 区域?

我使用的是 Qt 5.3。

【问题讨论】:

【参考方案1】:

试试这样的:

tabwidget.setStyleSheet("QTabWidget::pane  
 margin: 0px,1px,1px,1px;
 border: 2px solid #020202;
 border-radius: 7px;
 padding: 1px;
 background-color: #E6E6E3;
");

希望对你有帮助

【讨论】:

【参考方案2】:

问题似乎与QTabWidget 的“窗格”边距有关。

我通过在样式表上使用它解决了这个问题:

QTabWidget::pane 
    border: 0 solid white;
    margin: -13px -9px -13px -9px;

【讨论】:

【参考方案3】:

当您将QTableWidget 放到QTabWidget 选项卡上时,您可以右键单击它(QTabWidget)并选择Lay out -> Lay out vertically(例如,或水平),这将添加一个垂直布局元素并放置您的@987654329 @ 进去,填满整个标签。然后,选择新建的verticalLayout,向下滚动到Layout部分,从这里可以控制layoutLeftMarginlayoutTopMarginlayoutRightMarginlayoutBottomMargin属性:

将它们全部设置为 0,将为您提供所需的结果(不涉及样式表):

【讨论】:

嗨@Dmitriy,感谢您的回答。实际上,我在 QTabWidget 中添加了一个垂直布局(使用 Qt 设计中的上部布局菜单),但布局选项没有出现在我的属性编辑器中。 我正在寻找类似的东西,但在您的示例中,您仍然可以清楚地看到内部框架和选项卡小部件本身之间的 1 像素边距。那么,它并没有完全删除它?

以上是关于如何删除 QTabWidget 的“填充”?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 QTabWidget 上的额外“边框”? [复制]

如何在 QTabWidget Stretch 中制作标签以避免滚动

动态创建选项卡 QTabWidget 并填充表格 QTableWidget

如何在 QTabWidget 中隐藏选项卡并在按下按钮时显示它

无法更改停靠小部件填充

如何从 QTabWidget 获取小部件?