【发布时间】:2014-04-02 19:59:19
【问题描述】:
我有一个关于 qt 设计的一般性问题。
说,我创建了一个自定义类,包含 QAbstractTableModel 和 QTableView 类。我在View中重新实现了事件处理程序,如mousePressed、mouseRelease等。
Qt 的 View 仍然设法执行其一些默认功能:它仍然通过更改选择来响应鼠标单击和单元格上的移动,因此它以某种方式触发 selectionModel“内置”信号,尽管我没有问它。如果我拖动单元格边框等,它仍然会调整列的大小。触发那些“内置默认插槽”的机制是什么?如何禁用它的某些部分?例如。如果我想禁用selectionModel 的默认行为或默认调整大小?
为了比较,在gtk+ 中有一个默认每类信号处理程序的概念,它是一个函数,默认连接到它的信号并在您自定义的每类或每对象信号之前或之后调用处理程序,具体取决于您设置的参数。您可以从自定义插槽中禁用它,如果您想彻底控制例如调整大小或选择。
Qt 在这个地方是不透明的并且只通过它的接口函数提供定制吗?我的问题与pyqt 尤其相关。如果我太含糊,请要求澄清。
【问题讨论】:
标签: qt model-view-controller gtk pyqt