Python 在表的每一行旁边添加按钮

Python 在表的每一行旁边添加按钮,python,python-3.x,pyqt,pyqt5,qtablewidget,Python,Python 3.x,Pyqt,Pyqt5,Qtablewidget,目前我要做的是将按钮添加到第一列的表中。但是我想做的是不在表的列中添加按钮,而是在表的每一行旁边添加它 目前我是这样做的: # initialize a table somehow table = QTableWidget(parent) table.setRowCount(3) table.setColumnCount(5) table.setHorizontalHeaderLabels(['', 'Field 1', 'Field 2', 'Field 3', 'Field N']) tab

目前我要做的是将按钮添加到第一列的表中。但是我想做的是不在表的列中添加按钮,而是在表的每一行旁边添加它

目前我是这样做的:

# initialize a table somehow
table = QTableWidget(parent)
table.setRowCount(3)
table.setColumnCount(5)
table.setHorizontalHeaderLabels(['', 'Field 1', 'Field 2', 'Field 3', 'Field N'])
table.verticalHeader().hide()

# create an cell widget
for index in range(table.rowCount()):
    btn = QPushButton(table)
    btn.setText('add')
    table.setCellWidget(index, 0, btn)

我如何做到这一点(见下图):

您可以在垂直标题中添加按钮:

从PyQt5导入QtCore、QtGui、qtwidget
类ButtonHeaderView(QtWidgets.QHeaderView):
定义初始化(自身,父级):
super()
self.m_按钮=[]
自调整截面尺寸连接(自调整位置)
self.sectionCountChanged.connect(self.onSectionCountChanged)
self.parent().horizontalScrollBar().valueChanged.connect(self.adjustPositions)
@QtCore.pyqtSlot()
def onSectionCountChanged(自我):
而self.m_按钮:
button=self.m_buttons.pop()
button.deleteLater()
对于范围内的i(self.count()):
button=QtWidgets.QPushButton(自)
button.setCursor(QtCore.Qt.ArrowCursor)
self.m_buttons.append(按钮)
self.update_data()
自我调整位置()
def setModel(自我,型号):
super().setModel(model)
如果self.model()不是无:
self.model().headerDataChanged.connect(self.update_数据)
def更新_数据(自身):
对于i,枚举中的按钮(self.m_按钮):
text=self.model().headerData(i,self.orientation(),QtCore.Qt.DisplayRole)
按钮设置文本(str(文本))
def更新计量(自我):
super().updateGeometries()
自我调整位置()
@QtCore.pyqtSlot()
def调整位置(自身):
w=0
对于索引,枚举中的按钮(self.m_按钮):
geom=QtCore.QRect(
0,
self.section视口位置(索引),
按钮。高度(),
自截面尺寸(索引),
)
w=最大值(w,按钮高度()
几何调整(0,2,0,-2)
按钮。设置几何图形(几何图形)
自设置固定宽度(w)
如果名称=“\uuuuu main\uuuuuuuu”:
导入系统
app=qtwidts.QApplication(sys.argv)
w=QtWidgets.QTableWidget(3,4)
页眉=按钮页眉视图(w)
w、 setVerticalHeader(标题)
w、 setHorizontalHeaderLabels([“字段1”、“字段2”、“字段3”、“字段N”])
标题按钮=[]
对于范围内的i(w.columnCount()):
标题_按钮=“+”
标题按钮。附加(标题按钮)
w、 设置垂直标题标签(标题按钮)
w、 调整大小(320240)
w、 show()
sys.exit(app.exec_())

工作起来很有魅力。但是你能用PySide2代替PyQt吗?