ich bin mir nicht sicher ob es ein Bug ist oder ich einfach das ganze falsch verwende:
Jedesmal wenn ich nur die Scrollbalken benutzen will, wird immer das erste Element aus der Tableview selektiert und das entsprechende Signal emitiert.
Ich habe mir mein eigenes Tablemodel definiert:
Ganz primitiv also:
Code: Alles auswählen
class MyTableModel(QtCore.QAbstractTableModel):
def __init__(self, parent=None, text = ""):
QtCore.QAbstractTableModel.__init__(self, parent)
self.text = text
def rowCount(self, index):
return 200
def columnCount(self, index):
return 5
def data(self, index, role):
if role == QtCore.Qt.DisplayRole:
return QtCore.QString(self.text)
return QtCore.QVariant()
Code: Alles auswählen
class Example(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
hbox = QtGui.QHBoxLayout(self)
self.table = table = QtGui.QTableView(self)
tablemodel = MyTableModel(text = "mammy mia")
hbox.addWidget(table)
self.changebutton = QtGui.QPushButton("Change")
hbox.addWidget(self.changebutton)
self.changebutton.clicked.connect(self.change)
self.setLayout(hbox)
self.setWindowTitle("My table example")
self.move(250, 200)
def test(self):
print "testing"
def change(self):
self.table.setModel(MyTableModel(text = "pirlo"))
self.table.selectionModel().currentRowChanged.connect(self.test)
Um den Fehler zu reproduzieren, muss man lediglich auf "Change" klicken und den Scrollbalken scrollen und schon sieht man das "testing" ausgegeben wird. Dieses Verhalten ist nicht erwünscht, da ja nichts ausgewählt wurde.
Ich hoffe, dass ihr mir helfen könnt, das ganze schnüffelt nämlich hochgradig nach einem Bug oder wie gesagt, ich lese die Doku einfach falsch.
Grüße,
anogayales