【发布时间】:2018-07-24 16:06:41
【问题描述】:
我有一个源模型,顶部有几个级联 QSortFilterProxyModel。对于我的应用程序,我需要modelReset 信号从下到上冒泡,而不是相反,我该怎么做?
mwe:
from PyQt5 import QtWidgets, QtCore
import sys
class Model(QtCore.QAbstractTableModel):
def reset(self):
self.beginResetModel()
self.endResetModel()
class Filter(QtCore.QSortFilterProxyModel):
def __init__(self, model, arg):
super().__init__(model)
self.setSourceModel(model)
model.modelReset.connect(lambda: print(f'Reset {arg}'))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
model = Model()
filter0 = Filter(model, '0')
filter1 = Filter(filter0, '1')
filter2 = Filter(filter1, '2')
filter3 = Filter(filter2, '3')
button = QtWidgets.QPushButton('Reset')
button.clicked.connect(model.reset)
button.show()
sys.exit(app.exec_())
返回:
Reset 3
Reset 2
Reset 1
Reset 0
但我想拥有
Reset 0
Reset 1
Reset 2
Reset 3
【问题讨论】:
标签: python-3.x qt pyqt pyqt5