我有一個QTreeView
類安裝爲一個上下文菜單如下:Qt的上下文菜單中選擇突破在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
中的項目將刪除上下文菜單,但不會選擇點擊的項目。
當右鍵單擊新項目時,由於上下文菜單在新項目上彈出,但是由於沒有選擇項目,所以上下文菜單的內容引用了先前選擇的項目,這尤其令人迷惑。
我認爲這是現在固定在Qt 4.4.3 – Nick 2009-03-18 21:12:26