在wxpython中添加笔记本页面

2024-06-16 10:50:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行wxpython应用程序。在这个应用程序中,我有一个面板,其中包含一个带有一些笔记本页面/选项卡的笔记本。按一下按钮(wx.按钮),我希望能够清除其中一个笔记本页面,并将其替换为GUI中提供的新信息。在

我没有看到任何类型的Clear()函数wx.笔记本,所以我想到了删除这个页面并创建一个新页面。然而,我似乎不能让这个工作。这是我的密码…救命??在

def UpdatePanel(self):    

    self.Notebook3.DeletePage(0)

    self.newpage = scrolled.ScrolledPanel(self.Notebook3, -1)
    self.newpage.SetupScrolling()
    self.Notebook3.AddPage(self.newpage,"Page Inserted Here")

    # self.Notebook3.InsertPage(0,"Page Inserted Here")

Tags: self应用程序面板herepagewxpython笔记本gui
1条回答
网友
1楼 · 发布于 2024-06-16 10:50:12

签出此代码,看看如何使其适应您的代码:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import wx

class Page(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        t = wx.StaticText(self, -1, "THIS IS A PAGE OBJECT", (20,20))

class MainFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, title="Notebook Remove Pages Example")

        pannel  = wx.Panel(self)
        vbox    = wx.BoxSizer(wx.VERTICAL)
        hbox    = wx.BoxSizer(wx.HORIZONTAL)

        self.buttonRemove = wx.Button(pannel, id=wx.ID_ANY, label="DELETE", size=(80, 25))
        self.buttonRemove.Bind(wx.EVT_BUTTON, self.onButtonRemove)
        hbox.Add(self.buttonRemove)

        self.buttonInsert = wx.Button(pannel, id=wx.ID_ANY, label="CREATE", size=(80, 25))
        self.buttonInsert.Bind(wx.EVT_BUTTON, self.onButtonInsert)
        hbox.Add(self.buttonInsert)

        vbox.Add(hbox)

        self.Notebook3 = wx.Notebook(pannel)
        vbox.Add(self.Notebook3, 2, flag=wx.EXPAND)

        pannel.SetSizer(vbox)

        self.pageCounter = 0
        self.addPage()

    def addPage(self):
        self.pageCounter += 1
        page      = Page(self.Notebook3)
        pageTitle = "Page: {0}".format(str(self.pageCounter))
        self.Notebook3.AddPage(page, pageTitle)

    def onButtonRemove(self, event):   
        self.Notebook3.DeletePage(0)

    def onButtonInsert(self, event):   
        self.addPage()

if __name__ == "__main__":
    app = wx.App()
    MainFrame().Show()
    app.MainLoop()

相关问题 更多 >