我已经contentsMousePressEvent
像这样覆盖了我的列表视图中的。
void AppListView::contentsMousePressEvent(QMouseEvent *e)
{
AppGenericListView::contentsMousePressEvent(e);
if (e->button() == Qt::RightButton)
emit rightClicked();
emit multiSelection();
}
这是我的keyPressEvent
。
void AppListView::keyPressEvent(QKeyEvent * e)
{
AppGenericListView::keyPressEvent(e);
if ((e->key() == Qt::Key_Up) || (e->key() == Qt::Key_Down))
{
QListViewItem * item = currentItem();
if (item)
{
const QRect rect = itemRect(item);
QMouseEvent mEvt(QEvent::MouseButtonPress, rect.center(), Qt::LeftButton, Qt::LeftButton);
contentsMousePressEvent(&mEvt);
}
}
}
目前,这段代码运行良好。请注意,我不是在创建动态QMouseEvent
对象。我想知道的是这会导致未来崩溃吗?contentMousePressEvent
需要动态对象吗?Qt doc对此并没有多说。有任何想法吗 ....