Saltar al contenido

Agregar widgets a qtablewidget pyqt

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *