Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 在粘贴到文本字段之前,如何修改剪贴板中的字符串?_Qt_Qml_Clipboard - Fatal编程技术网

Qt 在粘贴到文本字段之前,如何修改剪贴板中的字符串?

Qt 在粘贴到文本字段之前,如何修改剪贴板中的字符串?,qt,qml,clipboard,Qt,Qml,Clipboard,TextField类型(我使用的是QML,但不重要)提供了一种方法。但是,我希望能够在粘贴之前从剪贴板数据中删除所有空白 Qt似乎没有提供任何钩子来以简单的方式实现这一点。有人知道如何实现这一点吗?< p>可以公开一个修改剪贴板数据并将其返回到qML:的C++函数。 class ClipboardModifier : public QObject { // ... Q_INVOKABLE QString modifiedClipboardText() const {

TextField
类型(我使用的是QML,但不重要)提供了一种方法。但是,我希望能够在粘贴之前从剪贴板数据中删除所有空白


Qt似乎没有提供任何钩子来以简单的方式实现这一点。有人知道如何实现这一点吗?

< p>可以公开一个修改剪贴板数据并将其返回到qML:

的C++函数。
class ClipboardModifier : public QObject
{
    // ...

    Q_INVOKABLE QString modifiedClipboardText() const
    {
        QClipboard *clipboard = QGuiApplication::clipboard();
        QString clipboardText = clipboard->text();
        // modify the text...
        return clipboardText;
    }
}
或者只需制作一个简单的QClipboard包装器,如答案所示,使用JavaScript在QML中进行修改,然后直接在文本字段上设置文本。

调用paste(),然后根据需要更改
onTextChaged
事件中的文本。