C++/Qt:绘制插入符号
我正在学习Qt。 我刚刚开始通过继承QAbstractScrollArea从头开始编写一个文本编辑器。 我这样做只是为了练习。 但现在我面临着显示插入符号的问题。 我想到的是painter.drawLine
和QTimer
。 您能否就此提供一些建议。 我也很高兴听到一些实施块和下划线插入符的策略。
题外话:这是一个错误吗? StackOverflow 说这个问题有两个答案,但我只看到一个!
I'm learning Qt. I just started to write a text editor from scratch by inheriting QAbstractScrollArea. I'm doing this just for practice. But now I'm faced with the problem of displaying a caret. What comes to my mind is painter.drawLine
and QTimer
. Can you give some advices on this. I would also be glad hear some strategies to implement block and underscore caret.
Off Topic: Is this a bug? StackOverflow says there are two answers for this question but I'm seeing only one!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看一下QLineEdit中的paintEvent()。 它有一个计时器,可以打开和关闭光标。 真正的光标绘制是通过QTextLayout::drawCursor完成的。
对于一般的文本编辑器,请查看 QPlainTextEdit 和 QTextEdit。
Take at a look at paintEvent() in QLineEdit. It has a timer that toggles the cursor on and off. The real cursor drawing is done via QTextLayout::drawCursor.
For a text editor in general, have a look at QPlainTextEdit and QTextEdit.