我有点厌倦了为我需要在 QWhateverView 行为中进行的每个小修改创建子类,所以我有了一个想法:
如果我为最常被覆盖的函数创建一个 ProxyView 会怎样,这些函数基本上会执行以下操作:
//(mousePress used as an example)
void ProxyView::mousePressEvent ( QMouseEvent * event )
{
if(mousePressFunctionHandler != nullptr)
functionHandler(this, event);
else
QTreeView::mousePressEvent(event);
}
虽然我确实无法以这种方式访问视图的内部结构,但我经常不需要它......到目前为止唯一阻止我的是我不确定这个想法是否合理...... :)
还是有更好的方法?