1つ以上のQTableView子ウィジェットを含むことができるウィジェットがあります。デフォルトでは、QTableViewの1つで範囲を選択し、crtl + cを押すと、左上のセルのみがクリップボードにコピーされます。範囲全体をコピーしたいので、その仕事をするcopy()スロットを実装しました。コピースロットに、コンテキストメニュー(ユーザーが選択を行い、対応するQTableViewを右クリックしたとき)とctrl+cショートカットの両方からアクセスできるようにしたいと思います。
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()));
}
範囲を選択して右クリックすると、適切なコンテキストメニューがポップアップ表示され、ショートカットの名前も含まれます。コンテキストメニューの[コピー]アクションをクリックすると、copy()スロットが実行されます。ただし、ctrl + cショートカットは、以前と同様に、選択範囲の左上のセルのみをコピーします。また、copy()スロットは実行されません。
どうすればこれを修復できますか?