Найти - Пользователи
Полная версия: QtGui.QTableView.selectionChanged() криво работает при переопределении.
Начало » GUI » QtGui.QTableView.selectionChanged() криво работает при переопределении.
1
keizer08
привет всем.
вот код:
class Table(QtGui.QTableView):
	cellChanged = QtCore.pyqtSignal(str, name = 'cellChanged')
	def __init__(self, parent = None):
		super(Table, self).__init__(parent)
		self.MODEL = None
		self.setAlternatingRowColors(True)
		self.setSelectionMode(1)
		self.setSelectionBehavior(1)
		self.setGridStyle(1)
	def setData(self, model):
		self.setModel(None)
		self.setEnabled(False)
		self.repaint()
		self.MODEL = model
		self.setModel(model)
		self.setEnabled(True)
		self.repaint()
	def selectionChanged(self, selected, deselected):
		print 'i changed!!!'
		self.repaint()
		
	def model(self):
		return self.MODEL

В этой таблице выставляется модель выделения так что бы можно было выделить только одну единственную строку. При переопределении метода selectionChanged() работает криво… когда меняешь выделение - предыдущая строка порой остается частично выделенной(а вернее почти всегда). Не пойму в чем проблема… Интересно бы узнать что происходит в оригинальном методе, как обрабатываются эти самые selected и deselected. Мне просто надо что бы таблица эмитила сигнал при смене строки(ячейки).
keizer08
Вопрос не актуален, решил проблему другим способом.
reclosedev
В этом коде проблема, скорее всего, в том, что не вызывается метод базового класса:
	def selectionChanged(self, selected, deselected):
		print 'i changed!!!'
		super(Table, self).selectionChanged(selected, deselected)

Но правильнее использовать сигнал selectionChanged от QItemSelectionModel которую можно получить через QAbstractItemView::selectionModel

Ну и с моделью вы что-то странное делаете.
keizer08
reclosedev
В этом коде проблема, скорее всего, в том, что не вызывается метод базового класса:
	def selectionChanged(self, selected, deselected):
		print 'i changed!!!'
		super(Table, self).selectionChanged(selected, deselected)

Но правильнее использовать сигнал selectionChanged от QItemSelectionModel которую можно получить через QAbstractItemView::selectionModel

Ну и с моделью вы что-то странное делаете.

Спасибо уже разобрался))) я сейчас вообще много чего чего странного делаю - я новичок.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB