使用 pyside6 在 QTableWidget 中添加自定义小部件

问题描述 投票:0回答:1

我正在尝试将自定义小部件添加到 QTableWidget 中。它正在被添加。虽然它不可见。下面是我的代码片段。我尝试删除小部件代码中的布局空间。单元格边界和 Qwidget 似乎有一些空格,我无法将其设为零。请说明如何解决此问题。

主界面

custom_widget = PositionAddWidgets1()
self.tableWidget_position_sell.setCellWidget(row, 6, custom_widget)

自定义Widget类

    from PySide6.QtWidgets import QWidget, QLineEdit, QPushButton, QHBoxLayout, QSizePolicy, QVBoxLayout

class PositionAddWidgets1(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.line_edit = QLineEdit(self)
        self.button1 = QPushButton("Add", self)
        self.button2 = QPushButton("1800", self)
        self.button3 = QPushButton("900", self)
        self.button4 = QPushButton("200", self)

        layout = QHBoxLayout()
        layout.addWidget(self.line_edit)
        layout.addWidget(self.button1)
        layout.addWidget(self.button2)
        layout.addWidget(self.button3)
        layout.addWidget(self.button4)

        self.setLayout(layout)

我得到的结果是

预期结果如下

qt pyside6 qtcore
1个回答
0
投票

在这种情况下,添加就足够了:

layout.setContentsMargins(0,0,0,0)

如果这仍然不够,或者如果您出于任何原因想要保留一些边距,则必须为您的小部件设置最小高度。添加以下行并尝试什么值适合您,而不是

50

self.setMinimumHeight(50)

或者,您可以在桌子上使用样式表,再次对您需要的高度进行一些实验:

self.tableWidget_position_sell.setStyleSheet('QTableView::item { min-height:50px; }')
© www.soinside.com 2019 - 2024. All rights reserved.