Как изменить строку из буфера обмена перед вставкой в ​​TextFIeld? - PullRequest
1 голос
/ 10 апреля 2019

Тип TextField (я использую QML, но это не имеет значения) предоставляет метод paste () .Тем не менее, я хотел бы иметь возможность убрать все пробелы из данных буфера обмена, прежде чем произойдет вставка.

Кажется, Qt не предоставляет никаких хуков, чтобы сделать это простым способом.Кто-нибудь знает, как этого добиться?

1 Ответ

1 голос
/ 10 апреля 2019

Вы можете предоставить функцию C ++, которая изменяет данные буфера обмена и возвращает их в QML:

class ClipboardModifier : public QObject
{
    // ...

    Q_INVOKABLE QString modifiedClipboardText() const
    {
        QClipboard *clipboard = QGuiApplication::clipboard();
        QString clipboardText = clipboard->text();
        // modify the text...
        return clipboardText;
    }
}

Или просто создайте простую оболочку QClipboard, как показано в ответах здесь , и внесите изменения в QML с помощью JavaScript, а затем непосредственно установите текст в текстовом поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...