Qt/PyQt:低级文本呈现

2024-04-20 08:53:28 发布

您现在位置:Python中文网/ 问答频道 /正文

[注:我更喜欢PyQt,但就我而言,Qt的答案是相同的。我懂两种语言。】

问题:

我想呈现一个字符串,例如:“Helloworld!”(没什么特别的)。我不想通过代理(例如QTextEdit或QWebKit)来实现这一点。相反,我希望在较低级别上完全控制渲染-每个角色。问题是:

  1. 我应该使用哪个小部件(用于最快的渲染)QGraphicsWidget?

  2. 给定一个位置(x,y),如何在屏幕上呈现角色的图像?

  3. 文本可能跨越多行。我应该一个接一个地将每个字符的图像呈现到屏幕上,还是应该先创建一个该行的“图像”,然后再渲染每一行(我想这将有助于提高滚动速度,因为不必重新计算每个字符,只需向上或向下移动行)?如果是后者,我如何创造这种形象?

  4. 当用户拖动鼠标时,我该如何突出显示所选内容-我是否必须重新呈现角色,或者只是在屏幕的那个位置执行一些“背景色”操作?

请,如果您能以实际的方式回答,我将不胜感激-例如具体的方法/类/等等(不仅仅是一个模糊的想法,如'显示',而是如何?)。在

谢谢!在


Tags: 字符串答案图像语言角色代理屏幕部件
1条回答
网友
1楼 · 发布于 2024-04-20 08:53:28

{{Qt}是使用cd1}来实现一个自定义的

这是一个完整的C++例子,我为你做的,我不知道PyQt,但是希望你能把它移植到这里!在

widget.h

#ifndef _WIDGET_H_
#define _WIDGET_H_

#include <QtGui>

class CustomPaint : public QWidget
{
    Q_OBJECT
    protected:
        virtual void paintEvent(QPaintEvent* event);
};

#endif

小工具.cpp

^{pr2}$

测试.cpp

^{3}$

测试.pro

QT=core gui
HEADERS=widget.h
SOURCES=test.cpp widget.cpp

相关问题 更多 >