0

QListViewマウスが( )のスペースを離れたときに、関数 (またはスロット) を呼び出そうとしていますtableView。通常は、関数を使用できますleaveEvent()。たとえば、私は書くことができます

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

これは意図したとおりに機能します。マウスがMainWindowウィジェットから離れると、アプリケーションは終了します。しかし、マウスがウィジェットQListViewの内側にあるオブジェクトから離れたときにアプリケーションを終了したい場合はどうすればよいでしょうか?MainWindow

QListViewQt 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 に答える