2013-07-16 32 views
0

我想在鼠標離開我的QListViewtableView)的空間時調用某個函數(或插槽)。通常情況下,您可以使用leaveEvent()函數。因此,例如我可以寫如何使用從QtCreator窗體創建listView的leaveEvent?

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

這可按預期工作。當鼠標離開MainWindow小部件時,應用程序退出。但是,如果我想在鼠標離開我的QListView對象時退出應用程序,該對象位於我的MainWindow小部件的INSIDE內部?

在Qt Creator的窗體設計器中創建時,如何爲此QListView重新實現此功能?

這裏是我有什麼(失敗)的嘗試:

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

及以下的,我一直在使用leaveEvent()作爲信號試過了,和它說leaveEvent是不確定的(可能你甚至可以使用事件SIGNAL S')

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

基本上,我試圖調用一些功能,當鼠標離開我tableView這與Qt Creator中的窗體設計器創建的。 QListView類似乎有mouseEntered()SIGNAL,但不是mouseLeave()SIGNAL

回答

2

子類而QListView和重新實現leaveEvent(示例):

class MyListView : public QListView 
{ 
    Q_OBJECT 

    void MyListView::leaveEvent(QEvent *e){ 
     QListView::leaveEvent(e); 
     anyOtherAction(); 
    } 
} 
相關問題