0

QListView当鼠标离开我的( )空间时,我试图调用某个函数(或插槽tableView)。通常,您可以使用该leaveEvent()功能。所以例如我可以写

void MainWindow::leaveEvent(QEvent * event){
    qApp->quit();
}

这按预期工作。当鼠标离开MainWindow小部件时,应用程序退出。但是,如果我想在鼠标离开小部件QListView内部的对象时退出应用程序MainWindow怎么办?

QListView当它在 Qt Creator 的表单设计器中创建时,我如何为此重新实现一个函数?

这是我(未成功)尝试过的:

void Ui::tableView::leaveEvent(){
    qApp->quit();
}

在下面,我尝试使用leaveEvent()作为信号,它说leaveEvent未定义(您甚至可以将事件用作SIGNALs 吗?)

connect(ui->tableView, SIGNAL(leaveEvent(QEvent *event)), this, SLOT(testSlot()));

基本上,当鼠标离开我时,我试图调用一些函数,tableView这是用 Qt Creator 的表单设计器创建的。该类QListView似乎有一个mouseEntered() SIGNAL,但没有mouseLeave() SIGNAL

4

1 回答 1

2

子类 QListView 并重新实现 leaveEvent(示例):

class MyListView : public QListView
{
     Q_OBJECT

    void MyListView::leaveEvent(QEvent *e){
        QListView::leaveEvent(e);
        anyOtherAction();
    }
}
于 2013-07-16T05:30:20.580 回答