Вопрос
Я изучаю Qt.Я только начал писать текстовый редактор с нуля, унаследовав QAbstractScrollArea.Я делаю это просто для практики.Но теперь я столкнулся с проблемой отображения курсора.Что приходит мне в голову, так это painter.drawLine
и QTimer
.Можете ли вы дать несколько советов по этому поводу?Я также был бы рад услышать некоторые стратегии по реализации блока и подчеркивания курсора.
Не по теме:Это ошибка?StackOverflow говорит, что есть два ответа на этот вопрос, но я вижу только один!
Решение
Взгляните на paintEvent() в Qlineправить.У него есть таймер, который включает и выключает курсор.Реальное рисование курсора выполняется с помощью QTextLayout::Курс рисования.
Что касается текстового редактора в целом, взгляните на QPlainTextEdit - Текстредактор и QTextEdit Изменить.