次のようにコンテキストメニューがインストールされたQTreeView
クラスがあります。
m_ui.tree->setContextMenuPolicy(Qt::CustomContextMenu);
connect(m_ui.tree, SIGNAL(customContextMenuRequested(const QPoint&)),
this, SLOT(ShowTreeContextMenu(const QPoint&)));
...
void ShowTreeContextMenu(const QPoint& point)
{
m_treeContextMenu->exec(m_ui.tree->viewport()->mapToGlobal(point));
}
ただし、コンテキスト メニューが表示されている場合、 はQTreeView
マウス クリックに応答しなくなります。コンテキスト メニューが表示されているときに項目をクリックするとQTreeView
、コンテキスト メニューが削除されますが、クリックした項目は選択されません。
これは、コンテキスト メニューが新しいアイテムの上にポップアップ表示されるため、新しいアイテムを右クリックすると特に混乱しますが、アイテムが選択されていないため、コンテキスト メニューの内容は以前に選択されたアイテムを参照しています。