0
我在QTreeView
子類中有一個QHeaderView
子類,該標題向委託人提供影響他們如何繪製自己的信息。標題接收控制這些值的鼠標事件。忽略發送的事件
我也希望我的委託編輯器小部件提供相同的功能,但不是複製和粘貼將鼠標值轉換爲頭部可以使用的值的代碼,我認爲將它重新發送到QMouseEvent
上會更容易它。
所以我複製事件並把它的(如docs說明):
QMouseEvent e(event->type(), event->pos(), event->button(),
event->buttons(), event->modifiers());
Sy_application::sendEvent(&header_, &e);
只有header_
永遠不會收到它。發佈活動具有相同的效果:
QMouseEvent* e = new QMouseEvent(QEvent::MouseButtonPress, event->pos(),
event->button(), event->buttons(),
event->modifiers());
Sy_application::postEvent(&header_, e);
爲什麼header_
沒有收到事件?
這可能是由於[事件過濾](http://qt-project.org/doc/qt-4.8/eventsandfilters.html#event-filters),但這只是一個猜測... – tmpearce
我沒有' t安裝任何。 'sendEvent(....)'返回true,這意味着_something_正在處理它。我會看看'QHeaderView'源代碼,看看是否有內置的,文檔沒有提到。 – cmannett85
@tmpearce Nope,'QHeaderView'或'QAbstractItemView :: event(QEvent * e)'源代碼看起來像會導致這種行爲。 – cmannett85