<p>我遇到了同样的问题,我试图通过修改由调用方法<code>QTextEdit::createStandardContext</code>创建的标准上下文菜单来解决这个问题,但它确实起了作用。<br/>
代码如下:</p>
<pre><code>void CWQTextEdit::contextMenuEvent(QContextMenuEvent *e)
{
QMenu *menu = QTextEdit::createStandardContextMenu();
if (menu == NULL)
return QTextEdit::contextMenuEvent(e);
QList<QAction*> actions = menu->actions();
foreach (QAction *action, actions)
{
QString actionText = action->text();
if (actionText.contains("Undo"))
{
actionText.replace("Undo", tr("Undo"));
action->setText(actionText);
}
else if (actionText.contains("Redo"))
{
actionText.replace("Redo", tr("Redo"));
action->setText(actionText);
}
else if (actionText.contains("Cu&t"))
{
actionText.replace("Cu&t", tr("Cut"));
action->setText(actionText);
}
else if (actionText.contains("Copy"))
{
actionText.replace("Copy", tr("Copy"));
action->setText(actionText);
}
else if (actionText.contains("Paste"))
{
actionText.replace("Paste", tr("Paste"));
action->setText(actionText);
}
else if (actionText.contains("Delete"))
{
actionText.replace("Delete", tr("Delete"));
action->setText(actionText);
}
else if (actionText.contains("Select All"))
{
actionText.replace("Select All", tr("Select All"));
action->setText(actionText);
}
}
menu->exec(e->globalPos());
}
</code></pre>