python - descargar - QTableWidget Selección actual Cambiar señal
download python pyqt (1)
Desea la señal itemSelectionChanged
:
Esta señal se emite cada vez que cambia la selección.
Puedes usar esto haciendo algo como esto:
self.itemSelectionChanged.connect(self.print_row)
Esto llamará a self.print_row
(que es una función que usted crea) cada vez que cambie la selección.
Un ejemplo muy básico:
import sys
from PyQt4 import QtGui, QtCore
lista = [''r1c1'', ''r1c2'', ''r1c3'']
listb = [''r2c1'', ''r2c2'', ''r1c3'']
listc = [''r3c1'', ''r3c2'', ''r3c3'']
mystruct = {''row1'':lista, ''row2'':listb, ''row3'':listc}
class MyTable(QtGui.QTableWidget):
def __init__(self, thestruct, *args):
QtGui.QTableWidget.__init__(self, *args)
self.data = thestruct
n = 0
for key in self.data:
m = 0
for item in self.data[key]:
newitem = QtGui.QTableWidgetItem(item)
self.setItem(m, n, newitem)
m += 1
n += 1
self.itemSelectionChanged.connect(self.print_row)
def print_row(self):
items = self.selectedItems()
print(str(items[0].text()))
def main(args):
app = QtGui.QApplication(args)
table = MyTable(mystruct, 3, 3)
table.show()
sys.exit(app.exec_())
if __name__=="__main__":
main(sys.argv)
Esto crea una tabla como esta:
Cuando seleccione cualquiera de las celdas, imprimirá el texto en la celda. Como nota, esta función de impresión asume que solo hace una selección a la vez. La función selectedItems()
devuelve una lista de elementos seleccionados. Solo estoy usando el primer índice en este ejemplo.
¿Cuál es la señal de un QTableWidget cuando cambia la selección actual y cómo puedo asignarle un espacio?