TextField
类型(我正在使用QML,但没有关系)提供了一种paste()方法。但是,我希望能够在粘贴发生之前从剪贴板数据中删除所有空白。
Qt似乎没有提供任何钩子来以简单的方式执行此操作。有人知道如何实现这一目标吗?
答案 0 :(得分:1)
您可以公开一个C ++函数,该函数修改剪贴板数据并将其返回给QML:
class ClipboardModifier : public QObject
{
// ...
Q_INVOKABLE QString modifiedClipboardText() const
{
QClipboard *clipboard = QGuiApplication::clipboard();
QString clipboardText = clipboard->text();
// modify the text...
return clipboardText;
}
}
或者如答案here所示,简单地包装QClipboard,然后使用JavaScript在QML中进行修改,然后直接在文本字段中设置文本。