2010-04-22 99 views
0

基本上我試圖給輸入鍵相同的功能作爲返回鍵時編輯qtablewidget中的單元格。如果編輯一個單元格並按下Enter鍵,我希望它跳出編輯該單元格就像返回一樣。這感覺就像我從字面上嘗試了一切。我甚至嘗試將返回的新聞事件傳遞給qcoreapplication。這似乎是如果你編輯一個單元格,然後按下一個鍵來觸發它不會發生的動作。這似乎是問題所在,我不知道如何解決這個問題。我已經將這個程序的所有鍵盤快捷鍵設置爲操作,因爲它似乎更容易設置。有沒有另外一種方法可以在編輯單元格時使關鍵事件發生?發佈編輯QTableWidget單元格

任何人都可以幫忙嗎?

預先感謝您。

試過這個。它不適合我。 How can I tell a QTableWidget to end editing a cell?

+0

我不確定明白你的意思,你可以創建一個小例子來重現問題嗎?主要功能+基本qtablewidget +幾步重現請? – 2010-04-22 18:11:06

+0

我是通過QT創建者完成的,所以它會說一點點選擇,給你一個功能,你可以複製粘貼並重現問題。 基本上我有一個主窗口中有一個qtablewidget。該表具有行和列等我有一個nextCell行動,我也創建了連接到Enter鍵。這一切都是在表單編輯器中完成的。我有這樣的主要功能:connect(ui-> nextCell,SIGNAL(切換(布爾)),這個,SLOT(on_nextCell_triggered())); 將鑰匙連接到插槽,但如果按下回車鍵,則在編輯單元時該插槽不會運行。 – Schomin 2010-04-22 18:46:57

+0

所以基本上,當你正確使用on_nextCell_triggered()時,會觸發on_nextCell_triggered(),但是當你編輯單元格時不會觸發on_nextCell_trigger();你嘗試在做任何事情之前檢查並取消on_nextCell_triggerd()中的可能編輯? – 2010-04-23 05:41:28

回答

0

好了,所以我看了看事件和過濾器,它基本上固定我的問題我設置它是這樣的:

void MainWindow::keyPressEvent(QKeyEvent *event){ 
    if (event->key() == Qt::Key_Enter) { 
    if (ui->tableWidget_2->hasFocus()){ 
     on_nextCell_Triggerd(); 
    } 
    else { 
    QWidget::keyPressEvent(event); 
    } 
} 

當回車鍵被觸發,將autopull你退出編輯模式。無需做任何事情。