2014-01-14 41 views
0

如何合併KeyReleaseEventQPushButton使用signal。 我的意思是每當用戶按下回車鍵時,都應該使用SLOT調用一些功能。所以我必須在信號中使用什麼?如何合併KeyReleaseEvent與按鈕

void mywindow::keyReleaseEvent(QKeyEvent *event) 
{ 
    switch(event->key()) 
    { 
     case Qt::Key_Enter: 
      connect(button1, SIGNAL(clicked()), this, SLOT(fileNew())); 
      connect(button2, SIGNAL(clicked()), this, SLOT(file())); 
     break; 
    } 
} 

回答

0

如果我正確理解你的問題,你想在按下回車鍵時點擊某個按鈕。您可以撥打QAbstractButton::click()函數來執行點擊。

connect(button1,SIGNAL(clicked()),this,SLOT(fileNew())); 
connect(button2,SIGNAL(clicked()),this,SLOT(file())); //do this in your constructor, or somewhere else.. just make sure you only do this once 

void mywindow::keyReleaseEvent(QKeyEvent *event) 
{ 
    switch(event->key()) 
    { 
     case Qt::Key_Enter: 
      button1->click();  
     break;  
    } 
} 
+0

-1:'button2'和動態連接怎麼樣? – RedX

+0

您可以使用hasFocus()並檢查按鈕焦點是否在button1或2中,然後通過單擊()調用該按鈕 – Rupesh

+0

@RedX動態連接怎麼樣? OP沒有詢問任何與此有關的事情。 'button2'也是一樣。我演示瞭如何以編程方式單擊按鈕。 – thuga