0
我有一個小部件可以包含一個或多個QTableView子部件。默認情況下,當我在其中一個QTableView中選擇一個範圍並按下crtl + c時,只有最左邊的最上面的單元格被複制到剪貼板。我想複製整個範圍,所以我實現了一個複製()插槽來完成這項工作。我希望複製插槽可以從上下文菜單中訪問(當用戶進行選擇並右鍵點擊相應的QTableView時)和ctrl + c快捷方式。如何覆蓋Qt中的默認快捷方式
class Widget
{
Q_OBJECT
public:
void setupContextMenu();
private:
QMenu* contextMenu_;
QAction* copyAction_;
QTableView* tableView_;
private slots:
void copy();
}
void Widget::setupContextMenu()
{
contextMenu_ = new QMenu(this);
copyAction_ = contextMenu_->addAction("&Copy");
copyAction_->setShortcut(QKeySequence::Copy);
connect(copyAction_, SIGNAL(triggered()),
this, SLOT(copy()));
}
當我選擇一個範圍並右鍵單擊時,彈出相應的上下文菜單,它甚至包含快捷方式的名稱。當我在上下文菜單中單擊「複製」動作時,複製()插槽會被執行。然而,ctrl + c快捷方式僅複製選區中最左邊的最上面的單元格。另外,copy()插槽不會被執行。
我該如何修復?
謝謝,我現在正在嘗試 – 2012-08-07 05:03:08
嗯,但讓我陷入困境的事情是copyAction_應該與上下文菜單無關。確定它屬於一個,但不應該阻止它被一個關鍵序列觸發。 – 2012-08-07 05:26:24