Название: textChanged в QMultiLineEdit Отправлено: IUnknown от Августа 01, 2005, 19:56 Есть текстовое поле QMultiLineEdit. Нужно сделать так что-бы при вводе в него текста аналогичный текст отображался на удаленном компе. Для одниночных символов делаю так:
bool QRemoteEdit::event(QEvent *pEvent) { if (pEvent->type() == QEvent::KeyPress) { QKeyEvent *pKeyEvent = static_cast<QKeyEvent *>(pEvent); m_pSocket->writeBlock(pKeyEvent->text(), pKeyEvent->text().length()); } return QMultiLineEdit::event(pEvent); } Как мне сделать так что-бы при вставке текста из буфера серверу был отправлен весь текст. Можно ли как-то сделать так что-бы при обработке textChanged как-то получать не весь текст существующий в текстовом поле, а только что введенный. Еще есть некоторые проблемы при удалении символов. Если кто сталкивался посоветуйте как это реализовать. Заранее благодарен. Название: textChanged в QMultiLineEdit Отправлено: jindos от Августа 02, 2005, 10:33 Если текст может быть вставлен в любое место QMultiLineEdit (а это видимо так), то нужно отправлять на сервер содержимое буфера обмена и QMultiLineEdit::getCursorPosition(int*line, int*col)... Наверное, этого будет достаточно...
Название: textChanged в QMultiLineEdit Отправлено: IUnknown от Августа 02, 2005, 15:58 А как сделать так что-бы при изменении текста у клиента на сервере все тоже изменялось - например устанавливаем курсор в любую позицию и удаляем один символ и что-бы на сервере был удален тот же символ?
Название: textChanged в QMultiLineEdit Отправлено: jindos от Августа 02, 2005, 16:41 Это все нужно обрабатывать, как я понимаю, если ты не хочешь каждый раз пересылать весь текст...
Если дело в удалении, то это тот же ввод, только наоборот: в обработке BackSpace или Del отсылаешь позицию курсора и количество удаленных символов = количество символов до удаления-количество символов после удаления (QMultilineEdit::text().length()) и направление выделения (при помощи markedText() можно получить)... Все это обрабатываешь на клиенте... По моему не сложно... Название: textChanged в QMultiLineEdit Отправлено: IUnknown от Августа 02, 2005, 22:08 Большое спасибо за помощь, но тут у меня возник еще один простенький вопросик:
у меня есть структура struct PACKET { Q_UINT8 m_uiState; Q_UINT32 m_uiMsg; Q_UINT32 m_uiWParam; Q_UINT32 m_uiLParam; }; которую я отсылаю. Вопрос у том как мне реализовать прием этой структуры в readyRead() желательно с использованием QBytesArray. Название: textChanged в QMultiLineEdit Отправлено: jindos от Августа 03, 2005, 09:49 Ну если ты ее через QDataStream пишешь в поток, то прочитать в обработчике сигнала readyRead можно при помощи оператора >>
|