首页 > 编程语言 >python:wxpython create mdi

python:wxpython create mdi

时间:2024-12-06 20:33:06浏览次数:7  
标签:__ title python create notebook init wxpython self wx

 

import wx

class MainFrame(wx.MDIParentFrame):
    def __init__(self, parent, title):
        wx.MDIParentFrame.__init__(self, parent, -1, title)

        # Create a menu bar
        menubar = wx.MenuBar()
        fileMenu = wx.Menu()
        newChildItem = fileMenu.Append(wx.ID_ANY, "&New Child Window")
        exitItem = fileMenu.Append(wx.ID_EXIT, "E&xit")
        menubar.Append(fileMenu, "&File")
        self.SetMenuBar(menubar)

        # Bind events
        self.Bind(wx.EVT_MENU, self.OnNewChild, newChildItem)
        self.Bind(wx.EVT_MENU, self.OnExit, exitItem)

    def OnNewChild(self, event):
        childFrame = ChildFrame(self, "Child Window")
        childFrame.Show()

    def OnExit(self, event):
        self.Close()

class ChildFrame(wx.MDIChildFrame):
    def __init__(self, parent, title):
        wx.MDIChildFrame.__init__(self, parent, -1, title)

if __name__ == "__main__":
    app = wx.App()
    frame = MainFrame(None, "MDI Example")
    frame.Show()
    app.MainLoop()

  

 

import wx

class TabbedFrame(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, size=(800, 600))

        self.notebook = wx.Notebook(self, -1, style=wx.NB_TOP)

        # 创建第一个标签页
        self.create_tab("Tab 1")
        # 创建第二个标签页
        self.create_tab("Tab 2")

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.notebook, 1, wx.EXPAND | wx.ALL, 5)
        self.SetSizer(sizer)

    def create_tab(self, title):
        panel = wx.Panel(self.notebook)
        text = wx.StaticText(panel, -1, f"This is {title}")
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(text, 1, wx.EXPAND | wx.ALL, 10)
        panel.SetSizer(sizer)
        self.notebook.AddPage(panel, title)

app = wx.App(False)
frame = TabbedFrame(None, -1, "Tabbed Frame")
frame.Show()
app.MainLoop()

  

import wx
import wx.aui

class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(800, 600))

        self.notebook = wx.aui.AuiNotebook(self)
        self.notebook.SetArtProvider(wx.aui.AuiSimpleTabArt())  # Use a simpler tab art

        # Create some panels for the tabs
        panel1 = wx.Panel(self.notebook)
        panel2 = wx.Panel(self.notebook)

        # Add the panels to the notebook with close buttons
        self.notebook.AddPage(panel1, "Tab 1", True)
        self.notebook.AddPage(panel2, "Tab 2", True)

        # Bind the close button event
        self.notebook.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.on_page_close)

        self.Show(True)

    def on_page_close(self, event):
        page = event.GetSelection()
        self.notebook.DeletePage(page)

if __name__ == '__main__':
    app = wx.App()
    frame = MyFrame(None, "MDI-like Tabbed Interface")
    app.MainLoop()

  

标签:__,title,python,create,notebook,init,wxpython,self,wx
From: https://www.cnblogs.com/geovindu/p/18591398

相关文章

  • 牛顿法 - Python代码
    牛顿法(Newton'sMethod)是一种用于求解非线性方程的数值方法。其核心思想是通过迭代的方式,在每次迭代中利用当前点的梯度和二阶导数来更新解的估计值。往期梯度下降法:梯度下降法-Python代码-CSDN博客一维问题:        泰勒展开是数学中的一种方法,通过对函数在某一......
  • python爬虫项目毕设:江苏南京旅游景区景点数据可视化系统开题报告
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育、辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩,提供核心代码讲解,答辩指导。项目配有对应开发......
  • Python实现基于变分原理的数值求解:Ritz方法
    importmathimportmatplotlib.pyplotaspltimportnumpyasnpdefgetK(l):k=np.array([[(l**3*(l**2+10))/30,(l**4*(l**2+10))/20],[(l**4*(l**2+10))/20,(4*l**5*(2*l**2+21))/105]])returnkdefgetF(l):f=np.array([(l**3/6),(l**4/4)])re......
  • Python从入门到实践 练习7.5 电影票
            有家电影院根据观众的年龄收取不同的票价:不到3岁的观众免费,3(含)~12岁的观众收费10美元;年龄满12岁的观众收费15美元。请编写一个循环,在其中询问用户的年龄,并指出其票价。第一种做法:使用变量active来控制循环结束#设置一个活动标志active=True#关键区别#......
  • python27 rabbbitmq pikia
    需要指定版本pika0.10.0#coding=utf-8importpikaif__name__=='__main__':credentials=pika.PlainCredentials('taskmanager','dayuan666')connection_parameters=pika.ConnectionParameters('211.......
  • 【Python小随笔】使用加密方式进行QQ邮件发送
    #提示defsmtpSend(mail_msg):Q="你的QQ号"#邮箱服务器及认证信息mail_host="smtp.qq.com"mail_user=f"{Q}@qq.com"mail_pass="邮箱秘钥"#发件人和收件人sender=f"{Q}@qq.com"recipients=[f......
  • 斗地主之顺子(Java & Python& JS & C++ & C )
    题目描述在斗地主扑克牌游戏中,扑克牌由小到大的顺序为:3,4,5,6,7,8,9,10,J,Q,K,A,2,玩家可以出的扑克牌阵型有:单张、对子、顺子、飞机、炸弹等。其中顺子的出牌规则为:由至少5张由小到大连续递增的扑克牌组成,且不能包含2。例如:{3,4,5,6,7}、{3,4,5,6,7,8,9,10,J,Q,K,A}都是......
  • python新闻评论情感分析可视化系统 Flask框架 NLP情感分析 计算机毕业设计(源码)✅
    python新闻评论情感分析可视化系统Flask框架NLP情感分析计算机毕业设计(源码)✅1、项目介绍技术栈:Flask框架、snownlp情感分析、Echarts可视化、NLP情感分析、LDA算法、Kmeans算法新闻评论情感分析可视化系统2、项目界面(1)系统首页(2)主题词汇分析(3)热门新闻分析......
  • 利用Python将Excel快速转换成HTML
    目录一、选择合适的工具和库二、安装必要的库三、读取Excel文件四、将DataFrame转换为HTML五、保存HTML文件六、完整示例和案例七、注意事项和常见问题八、总结在日常的办公和数据处理任务中,Excel文件因其强大的表格数据管理能力而备受欢迎。然而,在某些情况下,我们......
  • python新闻评论情感分析可视化系统 Flask框架 NLP情感分析 计算机毕业设计(源码)✅
    python新闻评论情感分析可视化系统Flask框架NLP情感分析计算机毕业设计(源码)✅1、项目介绍技术栈:Flask框架、snownlp情感分析、Echarts可视化、NLP情感分析、LDA算法、Kmeans算法新闻评论情感分析可视化系统2、项目界面(1)系统首页(2)主题词汇分析(3)热门新闻分析......