实际错误是由我编写的一个更大的程序产生的,但是以下示例再现了该错误:
import wx
class MyLine(wx.Frame):
def __init__(self):
self.thickness = 1
self.length = 10
self.spin_ctrl = []
super(MyLine, self).__init__(None)
self.SetBackgroundColour(wx.ColourDatabase().Find("GREY"))
vbox = wx.BoxSizer(wx.VERTICAL)
#Length section
self.spin_ctrl.append(wx.SpinCtrl(self, initial = self.length, min = 1, max = 100))
vbox.Add(self.spin_ctrl[-1], 0, wx.ALL | wx.ALIGN_CENTER, 5)
#Thickness section
self.spin_ctrl.append(wx.SpinCtrl(self, initial = self.thickness, min = 1, max = 10))
vbox.Add(self.spin_ctrl[-1], 0, wx.ALL | wx.ALIGN_CENTER, 5)
self.SetSizerAndFit(vbox)
self.Show()
app = wx.App()
fr = MyLine()
app.MainLoop()
运行上述命令时,将出现一个带有两个SpinCtrl
按钮的窗口。如果单击第一个更改值,然后关闭窗口,则一切正常,并且没有错误消息。当我单击第二个按钮以更改其值,然后关闭窗口时,出现以下错误:
Pango-CRITICAL **: pango_layout_get_cursor_pos: assertion 'index >= 0 && index <= layout->length' failed
。这是错误还是我没有正确使用SpinCtrl
按钮?
我正在运行WxPython4.0.3
。