Russian Qt Forum
Апрель 19, 2024, 01:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Одновременное выделение в двух QPlainTextEdit/QTextEdit  (Прочитано 2948 раз)
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« : Август 14, 2017, 14:04 »

Есть два редактора, нужно чтобы при выделении текста в одном, выделялся так же в другом
Через курсоры в принципе сделал, но выглядит неудобно -- пока выделяешь в одном редакторе, фокус в нем остается, поэтому выделение в другом почти не видно (см скриншот), а нужно чтобы одинаково хорошо было видно в обоих

// Пример выделения первых 4 символов
Код
C++ (Qt)
cursor_output = self.text_edit_output.textCursor()
cursor_output.setPosition(0)
cursor_output.movePosition(QTextCursor.Right, QTextCursor.KeepAnchor, 4)
 
self.text_edit_output.setTextCursor(cursor_output)
self.text_edit_output.setFocus()
 

Я делал что-то подобное, но с QSyntaxHighlighter, но это немного другое, и там свои заморочки, с которыми не хотелось возиться

Подскажите, как легко и непринужденно сделать выделение в обоих редакторах?
« Последнее редактирование: Август 14, 2017, 14:30 от gil9red » Записан

Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #1 : Август 14, 2017, 14:12 »

Так может проще делать через курсор, но поменять стиль выделения для неактивного QTextEdit?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #2 : Август 14, 2017, 14:29 »

Так может проще делать через курсор, но поменять стиль выделения для неактивного QTextEdit?

Подходит Улыбающийся

Нашел нужный пример:
Код
C++ (Qt)
QPalette p = myInactiveWidget->palette();
p.setColor(QPalette::Inactive, QPalette::Highlight, p.color(QPalette::Active, QPalette::Highlight));
p.setColor(QPalette::Inactive, QPalette::HighlightedText, p.color(QPalette::Active, QPalette::HighlightedText));
myInactiveWidget->setPalette(p);
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.084 секунд. Запросов: 22.