我将QAction添加到QTableWidget
m_pCutAction = new QAction( "Cut",this );
m_pCutAction->setIcon(QIcon(":/Img/cut.png"));
m_pCutAction->setShortcut(Qt::CTRL + Qt::Key_X);
connect(m_pCutAction, SIGNAL(triggered()), this, SLOT(cut()));
m_pCopyAction = new QAction( "Copy",this );
m_pCopyAction->setIcon(QIcon(":/Img/copy.png"));
m_pCopyAction->setShortcut(Qt::CTRL + Qt::Key_C);
和contextMenu
void contextMenuEvent(QContextMenuEvent *event)
{
QScopedPointer<QMenu>menu(new QMenu());
menu->addAction(m_pCutAction);
menu->addAction(m_pCopyAction);
menu->addAction(m_pPasteAction);
menu->exec(event->globalPos());
QTableWidget::contextMenuEvent(event);
}
但是Ctrl + X没有执行操作,但它是从Ctrl + C执行的。我可以执行复制操作,但使用键无法执行剪切操作。
我试过
m_pCutAction - &gt; setShortcut(QKeySequence :: Cut);
但这对我没有帮助。粘贴和删除相同。我只能复制操作。