Usted tiene un par de preguntas, todo en uno ... respuesta corta, sí, se puede añadir un botón a una 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 l Ike lo que realmente quieres.
Parece que quiere reaccionar ante un usuario al hacer doble clic en una de sus celdas, como si hubiera presionado un botón, presumiblemente para abrir un cuadro de diálogo o editor o algo.
Si ese es el caso, lo único que tiene que 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)
¿Cómo puedo hacer la fila para que cuando el usuario hace clic en la fila es resaltado y no la celda individual. –
do: table.setSelectionBehavior (QTableWidget.SelectRows) –
Además, ¿hay alguna manera de que pueda redirigir a una pestaña diferente cuando se hace clic en una determinada fila? Mi pregunta es ¿puedo básicamente redirigir a una pestaña diferente, algo así como un hipervínculo en una página web html. –