需要用到wx.ScrolledWindow这个控件,找来找去找不到例子,只好自己摸索,白白花费两个小时。
自己在UI方面断断续续学习了很多年,一些概念知识也是断断续续才补充完整的。今天两个小时的额外收获在于,搞清楚了什么是Window什么是Frame什么是Panel
Frame和Panel都是Window,一切的控件都是Window,这个概念其实很多人都明白的,不过是一个针对程序员的概念。
Frame算得上是一种TopLevelWindow,也就是平常人眼中的Window,比如浏览器。用户才不会像程序员一样思考,抽象的去理解一个Button就是一个Window这样的事实。Frame的意思是边框,导轨。想象一下常用词语Framework框架,可以帮助我们理解。
Panel是一种容器,当然我们也可以直接把控件放在Frame中,有时候为了需要,也会把控件放到Panel中。ScrolledWindow就是一个例子,它继承了Panel
ScrolledWindow的使用方法希望能够被搜索引擎收录,能帮其他人节约下来两个小时,做一些更有意义的事情
import wx
class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, title='ScrolledWindow Test') self.panel = wx.ScrolledWindow(self) self.button1 = wx.Button(self.panel, -1, "1", (10,0)) self.button2 = wx.Button(self.panel, -1, "2", (20,500)) self.panel.Show() self.Show() self.panel.EnableScrolling(False, True) self.panel.SetScrollbars(0,20,0,30) self.panel.Scroll(-1, 15)
if __name__ == '__main__': app = wx.PySimpleApp() frame = MyFrame() frame.Show() app.MainLoop()
自己在UI方面断断续续学习了很多年,一些概念知识也是断断续续才补充完整的。今天两个小时的额外收获在于,搞清楚了什么是Window什么是Frame什么是Panel
Frame和Panel都是Window,一切的控件都是Window,这个概念其实很多人都明白的,不过是一个针对程序员的概念。
Frame算得上是一种TopLevelWindow,也就是平常人眼中的Window,比如浏览器。用户才不会像程序员一样思考,抽象的去理解一个Button就是一个Window这样的事实。Frame的意思是边框,导轨。想象一下常用词语Framework框架,可以帮助我们理解。
Panel是一种容器,当然我们也可以直接把控件放在Frame中,有时候为了需要,也会把控件放到Panel中。ScrolledWindow就是一个例子,它继承了Panel
ScrolledWindow的使用方法希望能够被搜索引擎收录,能帮其他人节约下来两个小时,做一些更有意义的事情
