You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为wxPython的dc.DrawText()设置文本颜色?替代方案探讨

为wxPython的dc.DrawText()设置非黑色文本颜色的直接方法

要给dc.DrawText()绘制的文本设置非黑色颜色,不需要借助DrawTextList,直接使用dc.SetTextForeground()方法即可,这是更直接优雅的方式。

修正后的代码示例

title_text = "Parabola"
title_font = wx.Font(wx.FontInfo(20))
dc = wx.PaintDC(self)
# 设置文本前景色(即文本颜色)
dc.SetTextForeground(wx.Colour("blue"))
dc.SetFont(title_font)
title_w, title_h = dc.GetTextExtent(title_text)
title_pt = wx.Point(int(x_mid - title_w / 2), int(y_min-title_h))
dc.DrawText(text=title_text, pt=title_pt)

关键说明

  • dc.SetPen()是用来设置绘图时的线条颜色(比如画直线、图形边框),对文本颜色没有影响,你之前的代码里调用它属于无效操作。
  • SetTextForeground()专门控制文本的绘制颜色,设置后后续的DrawText()都会使用这个颜色,直到你再次修改。
  • 如果需要设置文本的背景色,可以使用dc.SetTextBackground()。

你使用DrawTextList的方案确实可行,但针对单个文本字符串的场景,SetTextForeground() + DrawText()的组合更简洁直接,符合你的需求。

内容的提问来源于stack exchange,提问作者crs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:53:17