wxpython中的静态文本如何添加滚动条?
在wxpython中,可以给静态文本添加滚动条吗?
我正在创建一个静态文本:
self.staticText1 = wx.StaticText(id=wxID_FRAME1STATICTEXT1,label=u'some text here',name='staticText1', parent=self.panel1, pos=wx.Point(16, 96),
size=wx.Size(408, 216),style=wx.ST_NO_AUTORESIZE | wx.THICK_FRAME | wx.ALIGN_CENTRE | wx.SUNKEN_BORDER)
self.staticText1.SetBackgroundColour(wx.Colour(255, 255, 255))
self.staticText1.SetBackgroundStyle(wx.BG_STYLE_SYSTEM)
self.staticText1.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.BOLD, False,u'MS Shell Dlg 2'))
self.staticText1.SetAutoLayout(True)
self.staticText1.SetConstraints(LayoutAnchors(self.staticText1, False,True, True, False))
self.staticText1.SetHelpText(u'')
但是后来我用StaticText.SetLabel来改变文本内容,新的文本太长了,放不下整个窗口,所以我需要给这个静态文本加个滚动条。
我试着在样式中添加wx.VSCROLL,滚动条是出现了,但我却无法向下滚动去查看剩下的文本。
1 个回答
4
wx.StaticText
是一种控件,它的设计就是不响应鼠标事件,也不会获取用户的焦点。因为它的功能就是这样,所以在它的使用场景中,出现滚动条就显得不太合适了。
如果你想实现你想要的效果,有两种方法: 1) 你可以使用一个普通的 TextCtrl
,并设置为只读模式(TE_READONLY),具体可以参考 这里;或者 2) 你可以创建一个带滚动条的窗口,把你的 StaticText
控件放在里面。