wxpython中的静态文本如何添加滚动条?

1 投票
1 回答
2892 浏览
提问于 2025-04-15 13:39

在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 控件放在里面。

撰写回答