以矩形显示数字

时间:2017-07-07 08:36:31

标签: python-3.x wxpython wxwidgets

请注意,我使用的是Python3和Phoenix。

我想在一个矩形内显​​示一个以某种方式格式化的数字(双重,但现在无关紧要)(再次,不管是什么方式):几乎是wx.StaticText但不可编辑的用户。这是为了显示来自某些硬件的一些数据,例如温度。

有这样的小部件吗?

我尝试使用带有样式的默认wx.StaticText,但我一定做错了:

    hbox = wx.BoxSizer(wx.HORIZONTAL)

    title = wx.StaticText(parent, label=label)
    title.SetLabelMarkup("<b>{}</b>".format(label))
    hbox.Add(title, border=5)

    value = wx.StaticText(parent, label="3.141592", style=wx.BORDER_RAISED)
    value.SetWindowStyle(wx.BORDER_SIMPLE)
    hbox.Add(value, border=5)

    title = wx.StaticText(parent, label="\u2103")
    hbox.Add(title, border=5)

在Linux(Fedora 24,GTK)上显示:

Screenshot

2 个答案:

答案 0 :(得分:2)

不会使用wx.TextCtrl设置只读作业吗?

Temp = wx.TextCtrl(panel1, value="3.141592", style=wx.TE_READONLY)
Temp.SetBackgroundColour('green')

enter image description here

答案 1 :(得分:1)

最简单的解决方案是使用带有边框样式的wxStaticText(例如wxBORDER_SIMPLE,...)。如果您不喜欢这样的外观,那么制作自己的小部件非常简单,只需要创建一个窗口,定义它的wxEVT_PAINT处理程序并在其中绘制(可能是居中的)文本,它外面的边界。