C++

с 22.12.2025

15+ лет пишу на плюсах, разбираю сложные и интересные кейсы из рабочей практики и своих проектов. Тгк: 0xC0DE1E55 | Слава C++

0 подписчиков
0 подписок

Уже не первый раз сталкиваюсь в проектах на Qt QML с проблемой управления диалогами и всплывающими окнами.

QML - декларативный язык и это здорово! Мы описываем, что хотим видеть на экране, и, если всё сделали правильно, при запуске программы получаем желаемый результат.

Кто-то может сказать, что можно использовать `insert`, который есть у `TextArea`, но это не сработает в сценарии, когда вы выделили часть текста и хотите заменить его данными из буффера.


Почему так происходит? Да потому что в момент вызова `insert` Qt в `QTextDocument` создает еще один `QTextCursor` по указанной позиции и говорит ему вставить текст…

"Задачка на 5 мин", но потом выясняется, что внутри — половина Qt, мобильные клавиатуры и немного боли.

На текущем месте работы возникла следующая задачка:


есть кроссплатформенное мобильное приложение, есть многострочное поле ввода TextArea, нужно вставить из буфера rich-text так, чтобы он отображался как plain-text.