wxpython设置背景颜色_wxPython,更改StyledTextCtrl的背景颜色

我的第一反应是调用txt.Refresh()因为我有类似的经验使用wx.TextCtrl,其中背景颜色没有更新,而Refresh()调用强制重绘.但是,似乎方法不正确.

在查看了StyledTextCtrl API之后,似乎SetBackground()不是您想要的功能.我的理解是,因为STC可以在同一个框中有多个样式,所以各个文本样式优先于STC的设置.

经过一番研究,我找到了StyleSetBackground()的功能.这会修改默认样式,使背景为红色,有效地将背景设置为红色.你需要像这样调用它:

txt.StyleSetBackground(wx.stc.STC_STYLE_DEFAULT, (255,0,0))

请记住,如果您使用多个样式,则可能需要为每个样式调用此方法.

– -编辑 – –

我忘记通过输入一些文本来检查我的代码.事实证明,如果你所做的只是按照我的建议调用SyleSetBackground(),当你输入文本时,输入文本的背景仍然是白色,而不是预期的红色.

通过在设置背景颜色后调用以下代码,可以轻松修复此问题,我已经发现了这一点:

txt.StyleClearAll()

我的猜测是,当您创建StyledTextCtrl时,它将文本样式设置为等于wx.stc.STC_STYLE_DEFAULT.到现在为止还挺好.但是,在此之后我们更改默认样式的值(通过使背景变为红色),所以现在文本样式和默认样式是不同的.因此,我们需要调用StyleClearAll()将ALL STYLES重置为默认样式(现在具有红色背景).

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值