2012-08-17 212 views
0

我試圖爲QTextBrowser添加一個自定義的contextMenu,我在我的Qt應用程序中,但似乎沒有工作。QTextBrowser的右鍵點擊上下文菜單

我正在使用爲元素QLineEdit定義的以下鏈接中介紹的步驟,但它不起作用。

extend-the-standard-context-menu-of-qtextedit

編輯:

下面的代碼我在主窗口的構造函數中寫道:

QDockWidget *dock = new QDockWidget(tr("Text View"), this); 
txtBrwsr = new QTextBrowser(this); 
dock->setWidget(txtBrwsr); 

txtBrwsr->setContextMenuPolicy(Qt::CustomContextMenu); 
connect(txtBrwsr,SIGNAL(customContextMenuRequested(const QPoint&)), this,SLOT(showContextMenu(const QPoint&))); 
setCentralWidget(txtBrwsr); 

以下是showContextMenu函數的實現: 無效AMTMainWindow: :showContextMenu(const QPoint & pt){

QMenu * menu = txtBrwsr->createStandardContextMenu(); 
    QMenu * tags; 
    tags = menu->addMenu(tr("&Tag")); 
    for(int i=0; i<_atagger->tagTypeVector->count(); i++) { 
     QAction * taginstance; 
     char * tagValue = (_atagger->tagTypeVector->at(i)).tag.toLocal8Bit().data(); 
     taginstance = new QAction(tr(tagValue), this); 
     connect(taginstance, SIGNAL(triggered()), this, SLOT(tag(tagValue))); 
     tags->addAction(taginstance); 
    } 
    menu->addAction(untagAct); 
    menu->addAction(addtagAct); 
    menu->exec(txtBrwsr->mapToGlobal(pt)); 
    delete menu; 
} 

經過一番調試後,我發現showContextMenu函數甚至沒有觸發,當我按右鍵單擊應打開上下文菜單。所以我認爲主要問題在於連接功能。

任何幫助表示讚賞。

+1

通過「不工作」,你的意思是菜單顯示不出來或者是行動禁用,或者您的自定義選項未顯示? – 2012-08-17 05:48:01

+0

告訴我們你寫的是什麼 - 我們不是心靈的。 – cmannett85 2012-08-17 06:57:34

回答

1

刪除菜單創建它只是這裏經過:

[...] 
menu->addAction(addtagAct); 
menu->exec(txtBrwsr->mapToGlobal(pt)); 

delete menu;