首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ScrolledWindow中创建wxPython

在ScrolledWindow中创建wxPython
EN

Stack Overflow用户
提问于 2010-08-02 23:47:14
回答 1查看 6.8K关注 0票数 1

我正在尝试制作一个可以滚动到图像网格上的ScrolledWindow,但是滚动条没有出现。wxWidgets文档说:

在wxScrolledWindow中设置滚动条的最自动和最新的方法是简单地让sizer决定滚动区域。现在,当您使用wxWindow::SetSizer将内部sizer设置为wxScrolledWindow时,这是默认的。滚动区域将设置为sizer要求的大小,滚动条将根据每个方向的需要和wxScrolledWindow::SetScrollRate设置的滚动增量分配。

所以我尝试用一个ScrolledWindow设置我的GridSizer,但是它不起作用。守则:

代码语言:javascript
复制
import wx

class MyFrame(wx.Frame):

    def __init__(self, parent, id=-1,title="",pos=wx.DefaultPosition,
         size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE,
         name="frame"):

        wx.Frame.__init__(self,parent,id,title,pos,size,style,name)

        self.panel = wx.ScrolledWindow(self,wx.ID_ANY)

        menuBar = wx.MenuBar()
        menu1 = wx.Menu()
        m = menu1.Append(wx.NewId(), "&Blah", "Show Pictures")
        menuBar.Append(menu1,"&Blah")
        self.Bind(wx.EVT_MENU,self.OnInit,m)

        self.SetMenuBar(menuBar)

    def OnInit(self, event):

        sizer = wx.GridSizer(rows=7,cols=3)

        filenames = []
        for i in range(20):
            filenames.append("img"+str(i)+".png")
        for fn in filenames:
            img = wx.Image(fn,wx.BITMAP_TYPE_ANY)
            sizer.Add(wx.StaticBitmap(self.panel,wx.ID_ANY,wx.BitmapFromImage(img)))

        self.panel.SetSizer(sizer)

class MyApp(wx.App):

    def OnInit(self):

        self.frame = MyFrame(parent=None,title="Frame")
        self.frame.Show()
        self.SetTopWindow(self.frame)
        return True

if __name__ == "__main__":

    app = MyApp()
    app.MainLoop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-03 02:01:30

插入这个

代码语言:javascript
复制
self.panel.SetScrollbars(1, 1, 1, 1)

self.panel = wx.ScrolledWindow(self,wx.ID_ANY)

如果您想要一些关于SetScrollBars方法的信息,那么请查看这个wxwidgets文档页面

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3392631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档