Solución:
Tiene un par de preguntas agrupadas en una … respuesta corta, sí, puede agregar un botón a un QTableWidget; puede agregar cualquier widget al widget de tabla llamando a setCellWidget:
# initialize a table somehow
table = QTableWidget(parent)
table.setRowCount(1)
table.setColumnCount(1)
# create an cell widget
btn = QPushButton(table)
btn.setText('12/1/12')
table.setCellWidget(0, 0, btn)
Pero eso no suena como lo que realmente quieres.
Parece que quieres reaccionar cuando un usuario hace doble clic en una de tus celdas, como si hicieran clic en un botón, presumiblemente para abrir un cuadro de diálogo, un editor o algo así.
Si ese es el caso, todo lo que realmente necesita hacer es conectarse a la señal itemDoubleClicked del QTableWidget, así:
def editItem(item):
print 'editing', item.text()
# initialize a table widget somehow
table = QTableWidget(parent)
table.setRowCount(1)
table.setColumnCount(1)
# create an item
item = QTableWidgetItem('12/1/12')
table.setItem(0, 0, item)
# if you don't want to allow in-table editing, either disable the table like:
table.setEditTriggers( QTableWidget.NoEditTriggers )
# or specifically for this item
item.setFlags( item.flags() ^ Qt.ItemIsEditable)
# create a connection to the double click event
table.itemDoubleClicked.connect(editItem)
En PyQt4, agregue el botón a qtablewidget:
btn= QtGui.QPushButton('Hello')
qtable_name.setCellWidget(0,0, btn) # qtable_name is your qtablewidget name
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)