【发布时间】:2015-12-12 15:46:30
【问题描述】:
我将如何启用和禁用粘贴操作,就像 QTextEdit 的上下文菜单粘贴操作一样?所以当剪贴板有东西时,应该启用粘贴按钮,当我清除剪贴板时,应该禁用粘贴按钮。但是,这不会发生在我创建的操作中。
这是我目前所拥有的:
TextEditor::TextEditor(QWidget *parent) :
...
{
...
connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(processPaste()));
....
}
void TextEditor::processPaste()
{
if (const QMimeData *md = QApplication::clipboard()->mimeData())
ui->actionPaste->setEnabled(md->hasText());
}
当程序启动并且剪贴板为空时,该操作会像预期的那样被禁用,当我复制某些内容时,该操作会再次启用,就像预期的那样,但是当我清除剪贴板时,粘贴操作在应该被禁用时仍然启用比如 QTextMenu 的粘贴动作。
谢谢!
【问题讨论】:
-
你怎么知道你已经清除了剪贴板?
-
当我清除剪贴板时,QTextEdit 的上下文菜单中的粘贴操作被禁用,而我的继续保持启用状态。