繁体   English   中英

滚动面板在wxPython中不起作用

[英]Scrolled Panel not working in wxPython

 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。

按照适用于我的示例,不确定为什么对您不起作用。 我喜欢使用size_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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM