我正在尝试将自定义小部件添加到 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)
在这种情况下,添加就足够了:
layout.setContentsMargins(0,0,0,0)
如果这仍然不够,或者如果您出于任何原因想要保留一些边距,则必须为您的小部件设置最小高度。添加以下行并尝试什么值适合您,而不是
50
。
self.setMinimumHeight(50)
或者,您可以在桌子上使用样式表,再次对您需要的高度进行一些实验:
self.tableWidget_position_sell.setStyleSheet('QTableView::item { min-height:50px; }')