在 PyQt 中向 QTableWidget 单元格添加多个小部件
Adding Multiple Widgets to QTableWidget Cell in PyQt
我想在 QTableWidget 中添加 3 个按钮。
我可以使用下面的代码添加一个按钮。
self.tableWidget = QtGui.QTableWidget()
saveButtonItem = QtGui.QPushButton('Save')
self.tableWidget.setCellWidget(0,4,saveButtonItem)
但我想知道如何添加多个(比如说 3 个)按钮。我的意思是与保存按钮一起,我想在同一列中添加其他 2 个按钮,如编辑、删除(操作)
您可以简单地创建自己的小部件,其中包含三个按钮,例如通过子类化 QWidget
:
class EditButtonsWidget(QtGui.QWidget):
def __init__(self, parent=None):
super(EditButtonsWidget,self).__init__(parent)
# add your buttons
layout = QtGui.QHBoxLayout()
# adjust spacings to your needs
layout.setContentsMargins(0,0,0,0)
layout.setSpacing(0)
# add your buttons
layout.addWidget(QtGui.QPushButton('Save'))
layout.addWidget(QtGui.QPushButton('Edit'))
layout.addWidget(QtGui.QPushButton('Delete'))
self.setLayout(layout)
然后,将此小部件设置为单元小部件:
self.tableWidget.setCellWidget(0,4, EditButtonsWidget())
您使用布局小部件将小部件添加到,然后将布局小部件添加到单元格。
您可以使用几种不同的方法。
http://doc.qt.io/qt-4.8/layout.html
self.tableWidget = QtGui.QTableWidget()
layout = QtGui.QHBoxLayout()
saveButtonItem = QtGui.QPushButton('Save')
editButtonItem = QtGui.QPushButton('Edit')
layout.addWidget(saveButtonItem)
layout.addWidget(editButtonItem)
cellWidget = QtGui.QWidget()
cellWidget.setLayout(layout)
self.tableWidget.setCellWidget(0, 4, cellWidget)
我想在 QTableWidget 中添加 3 个按钮。 我可以使用下面的代码添加一个按钮。
self.tableWidget = QtGui.QTableWidget()
saveButtonItem = QtGui.QPushButton('Save')
self.tableWidget.setCellWidget(0,4,saveButtonItem)
但我想知道如何添加多个(比如说 3 个)按钮。我的意思是与保存按钮一起,我想在同一列中添加其他 2 个按钮,如编辑、删除(操作)
您可以简单地创建自己的小部件,其中包含三个按钮,例如通过子类化 QWidget
:
class EditButtonsWidget(QtGui.QWidget):
def __init__(self, parent=None):
super(EditButtonsWidget,self).__init__(parent)
# add your buttons
layout = QtGui.QHBoxLayout()
# adjust spacings to your needs
layout.setContentsMargins(0,0,0,0)
layout.setSpacing(0)
# add your buttons
layout.addWidget(QtGui.QPushButton('Save'))
layout.addWidget(QtGui.QPushButton('Edit'))
layout.addWidget(QtGui.QPushButton('Delete'))
self.setLayout(layout)
然后,将此小部件设置为单元小部件:
self.tableWidget.setCellWidget(0,4, EditButtonsWidget())
您使用布局小部件将小部件添加到,然后将布局小部件添加到单元格。
您可以使用几种不同的方法。 http://doc.qt.io/qt-4.8/layout.html
self.tableWidget = QtGui.QTableWidget()
layout = QtGui.QHBoxLayout()
saveButtonItem = QtGui.QPushButton('Save')
editButtonItem = QtGui.QPushButton('Edit')
layout.addWidget(saveButtonItem)
layout.addWidget(editButtonItem)
cellWidget = QtGui.QWidget()
cellWidget.setLayout(layout)
self.tableWidget.setCellWidget(0, 4, cellWidget)