【发布时间】:2015-08-31 13:05:25
【问题描述】:
当QPainter 创建时,它有一些默认的渲染提示。一些小部件在绘制自己时会覆盖它们。是否可以覆盖这些默认值并禁用整个应用程序的每个小部件覆盖?
我想按如下方式覆盖默认值,并使所有小部件类都遵循这些:
painter->setRenderHints(QPainter::SmoothPixmapTransform | QPainter::Antialiasing, false);
painter->setRenderHints(QPainter::TextAntialiasing , true);
有可能吗?
更新:
简短的回答:不改变 Qt 源代码是不可能的。
【问题讨论】:
-
您可以继承
QPainter并将该代码放入构造函数中 -
1.这是不可能的,因为构造函数中不存在 QPainter 的对象。 2. 我需要为所有小部件重新定义这些标志。
-
我的意思是在子类
QPainter构造函数中 -
鉴于这些提示仅对几个小部件真正产生影响,因此全局更改并不是真正必要的。这是您自己的小部件和
QGraphicsView所需要的,仅此而已。 -
@KubaOber 例如,我使用 QTextBrowser。这些提示真的改变了线条和图像的想象。
标签: c++ qt rendering qt5 qpainter