【发布时间】:2011-12-08 10:55:21
【问题描述】:
[注意:我更喜欢 PyQt,但就我而言,Qt 的答案是一样的。我懂两种语言。]
问题:
我想渲染一个字符串,例如:'Hello world!' (没有什么花哨)。我不想通过代理来执行此操作,例如 QTextEdit 或 QWebKit。相反,我希望完全控制低级别的渲染 - 每个字符。问题/问题是:
我应该使用哪个小部件(为了最快的渲染)QGraphicsWidget?
给定一个位置 (x,y),然后如何在屏幕上渲染角色的图像?
文本可能跨越多行。我应该将每个字符的图像逐个渲染到屏幕上,还是应该首先创建行的“图像”,然后渲染每一行(我认为这将有助于滚动速度,因为不会重新计算每个字符,只向上或向下移动线)?如果是后者,我该如何创建该图像?
当用户将鼠标拖到选择上时,我将如何突出显示选择 - 我是否必须重新渲染角色,或者只是在屏幕的该位置执行一些“背景颜色”操作?
如果您能以实用的方式回答,我将不胜感激 - 即特定的方法/类/等。 (不仅仅是一个模糊的想法,比如“展示它”——而是如何展示它?)。
谢谢!
【问题讨论】:
-
里面有 11 个问号。同时要回答很多问题。如果您尝试首先关注一个问题,例如,您可能会更成功地获得有用的答案。如何渲染单个字符。一旦你能够做到这一点,你可以提出进一步的问题,比如让它斜体或如果你卡住了渲染的性能。
-
明白。我现在已将其范围缩小到选择渲染方法时必须考虑的最基本问题。
-
如果您提出具体问题并提供不起作用的代码示例,则更容易给出“实用”的答案。否则,您可能会要求人们为您编写所有代码。
-
既然skyhisi这么好心的为我提供了基本的出发点,当然我会自己写代码,也可以提出更尖锐的问题。直到现在,我什至不知道从哪里开始!
标签: python qt text pyqt rendering