class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None,-1, "SCSM Observatory Log", size=(700, 700))
panel = wxScrolledPanel.ScrolledPanel(self,-1, size=(800,10000))
panel.SetupScrolling()
有人可以解释为什么这段代码不起作用?我没有收到任何错误,但它的滚动命令可能没有被初始化?
编辑:滚动工作但我必须调整窗口大小并使其缩小以启用滚动功能。此外,它不会一直滚动到底部。
编辑2:显然滚动条仅滚动到框架的垂直尺寸。因此,如果我将框架y-size设置为1000,它将滚动到1000.唯一的问题是,对于要使用的监视器而言,大的窗口太大。有没有办法强制滚动条移动到大于框架大小的距离?例如,我希望窗口打开,大小为(700,700),但我需要滚动条转到1000.
答案 0 :(得分:0)
不确定为什么它不适合你,跟随一个适合我的样本。我喜欢使用sizes_controls来处理sizer(在我看来)。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wx
print(wx.VERSION_STRING)
import wx.lib.sized_controls as SC
class MyCtrl(SC.SizedPanel):
def __init__(self, parent):
super(MyCtrl, self).__init__(parent)
tx1 = wx.TextCtrl(self)
tx1.SetSizerProps(expand=True, proportion=1)
tx2 = wx.TextCtrl(self)
tx2.SetSizerProps(expand=True, proportion=1)
class MyFrame(SC.SizedFrame):
def __init__(self, parent):
super(MyFrame, self).__init__(parent,
style=wx.RESIZE_BORDER|wx.DEFAULT_DIALOG_STYLE)
pane = self.GetContentsPane()
st = wx.StaticText(pane, label='Text')
sp = SC.SizedScrolledPanel(pane)
sp.SetSizerProps(expand=True, proportion=1)
mc1 = MyCtrl(sp)
mc2 = MyCtrl(sp)
if __name__ == '__main__':
import wx.lib.mixins.inspection as WIT
app = WIT.InspectableApp()
frame = MyFrame(None)
frame.Show()
app.MainLoop()