【问题标题】:Change font style inline in wx.TextCtrl and wx.StaticText在 wx.TextCtrl 和 wx.StaticText 中更改字体样式
【发布时间】:2014-02-19 19:44:21
【问题描述】:

我正在使用 wxPython 通过 PyWizardPages 构建一个向导。

我想知道是否有办法将“内联”文本加粗或斜体?

换句话说:

# StaticText
a = wx.StaticText(page, -1, "Click Next")

# TextCtrl
b = wx.TextCtrl(page2, -1, "")
b.SetValue("Here are the details:")

现在,比如说,我想将“Next”加粗,将“details”加粗。这不是 kosher 语法,而只是我希望能够做的事情,如果可能的话:

# Hypothetical way to inline bold
a = wx.StaticText(page, -1, "Click <b>Next</b>")

# Hypothetical way to inline italicize
b.SetValue("Here are the <i>details</i>:")

这样的事情可能吗,还是我需要创建一个新的StaticText/TextCtrl,将它们加粗和斜体,然后弄清楚如何将它相应地放置在网格中,使它看起来像一个完整的句子?

【问题讨论】:

  • 我想你想要 RichText 样式...还有一个 RichText 小部件,以及一个 HTML 渲染器的东西
  • @JoranBeasley,是的,我认为这似乎是我想要的。我查看了 RichText 小部件,但我无法理解您所说的 RichText 样式是什么意思。不确定哪个更容易实现,因为我从StaticTextTextCtrl 开始。另外,如果您正确地将回复写为答案,我会接受。

标签: python wxpython wizard


【解决方案1】:

TextCtrl 有一个名为 wx.TE_RICH 和 wx.TE_RICH2 的样式标志。这两个都显示在 wxPython 演示中。我不相信 StaticText 小部件会为您工作。还有一个可以使用的 RichText 小部件或 StyleTextCtrl。另一种选择是自己在屏幕上绘制文本,这将为您提供最大的控制权。 wxPython 演示中有所有这些主题的示例,所以我将从那里开始。

【讨论】:

  • 这对我有帮助。谢谢你。我将wx.TE_RICH 样式添加到TextCtrl,并且能够将我需要的TextCtrl 部分加粗和斜体。不过,我还没有完全弄清楚如何为 StaticText 做到这一点。我会研究一下 RichText。
猜你喜欢
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-13
  • 1970-01-01
  • 2011-12-02
  • 2011-09-15
  • 2016-03-09
相关资源
最近更新 更多