热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

wxpython中文教程_wxPython选项卡

虽然我们没有为wxPython系列大量使用面向对象,但出于简单的原因,我们无法绕过它。在本教程中,你将学习如何使用wxPython创建选项

虽然我们没有为 wxPython 系列大量使用面向对象,但出于简单的原因,我们无法绕过它。在本教程中,你将学习如何使用 wxPython 创建选项卡界面。

类 Mainframe 用来创建框架,就像我们在前面的例子中所做的那样。其他类是选项卡的内容。我们在主框架中创建了一个面板和笔记本(标签夹)。然后我们创建 tab 对象:

tab1 = TabOne(nb)

tab2 = TabTwo(nb)

...

我们使用以下方法附加到标签夹:

nb.AddPage(tab1, "Tab 1")

nb.AddPage(tab2, "Tab 2")

...

完整代码:

import wx

# Define the tab content as classes:

class TabOne(wx.Panel):

def __init__(self, parent):

wx.Panel.__init__(self, parent)

t = wx.StaticText(self, -1, "This is the first tab", (20,20))

class TabTwo(wx.Panel):

def __init__(self, parent):

wx.Panel.__init__(self, parent)

t = wx.StaticText(self, -1, "This is the second tab", (20,20))

class TabThree(wx.Panel):

def __init__(self, parent):

wx.Panel.__init__(self, parent)

t = wx.StaticText(self, -1, "This is the third tab", (20,20))

class TabFour(wx.Panel):

def __init__(self, parent):

wx.Panel.__init__(self, parent)

t = wx.StaticText(self, -1, "This is the last tab", (20,20))

class MainFrame(wx.Frame):

def __init__(self):

wx.Frame.__init__(self, None, title="wxPython tabs example @pythonspot.com")

# Create a panel and notebook (tabs holder)

p = wx.Panel(self)

nb = wx.Notebook(p)

# Create the tab windows

tab1 = TabOne(nb)

tab2 = TabTwo(nb)

tab3 = TabThree(nb)

tab4 = TabFour(nb)

# Add the windows to tabs and name them.

nb.AddPage(tab1, "Tab 1")

nb.AddPage(tab2, "Tab 2")

nb.AddPage(tab3, "Tab 3")

nb.AddPage(tab4, "Tab 4")

# Set noteboook in a sizer to create the layout

sizer = wx.BoxSizer()

sizer.Add(nb, 1, wx.EXPAND)

p.SetSizer(sizer)

if __name__ == "__main__":

app = wx.App()

MainFrame().Show()

app.MainLoop()

输出:

wxTabs.png



推荐阅读
  • Java实现实时更新的日期与时间显示
    本文介绍了如何使用Java编程语言来创建一个能够实时更新显示系统当前日期和时间的小程序。通过使用Swing库中的组件和定时器功能,可以实现界面友好且功能强大的时间显示应用。 ... [详细]
  • 本文介绍了进程的基本概念及其在操作系统中的重要性,探讨了进程与程序的区别,以及如何通过多进程实现并发和并行。文章还详细讲解了Python中的multiprocessing模块,包括Process类的使用方法、进程间的同步与异步调用、阻塞与非阻塞操作,并通过实例演示了进程池的应用。 ... [详细]
  • 第1章选择流程控制语句1.1顺序结构的基本使用1.1.1顺序结构概述是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行 ... [详细]
  • 本文介绍了一个基本的同步Socket程序,演示了如何实现客户端与服务器之间的简单消息传递。此外,文章还概述了Socket的基本工作流程,并计划在未来探讨同步与异步Socket的区别。 ... [详细]
  • SpringBoot底层注解用法及原理
    2.1、组件添加1、Configuration基本使用Full模式与Lite模式示例最佳实战配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组 ... [详细]
  • 本文详细解析 Skynet 的启动流程,包括配置文件的读取、环境变量的设置、主要线程的启动(如 timer、socket、monitor 和 worker 线程),以及消息队列的实现机制。 ... [详细]
  • 本文介绍了一个将 Java 实体对象转换为 Map 的工具类,通过反射机制获取实体类的字段并将其值映射到 Map 中,适用于需要将对象数据结构化处理的场景。 ... [详细]
  • 本文介绍了如何利用Java编程语言中的正则表达式来验证字符串中的数字是否符合中国三大运营商(中国电信、中国联通、中国移动)的手机号码格式。文章提供了详细的代码示例和解析。 ... [详细]
  • 前端技术分享——利用Canvas绘制鼠标轨迹
    作为一名前端开发者,我已经积累了Vue、React、正则表达式、算法以及小程序等方面的技能,但Canvas一直是我的盲区。因此,我在2018年为自己设定了一个新的学习目标:掌握Canvas,特别是如何使用它来创建CSS3难以实现的动态效果。 ... [详细]
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • 本文介绍了如何使用Java编程语言实现凯撒密码的加密与解密功能。凯撒密码是一种替换式密码,通过将字母表中的每个字母向前或向后移动固定数量的位置来实现加密。 ... [详细]
  • 本文介绍如何使用 Python 计算两个时间戳之间的时间差,并将其转换为毫秒。示例代码展示了如何通过 `time` 和 `datetime` 模块实现这一功能。 ... [详细]
  • 本文介绍了如何在React应用中实现延迟加载以提高性能,以及如何利用自定义Hook和高阶组件(HOC)来增强组件功能。通过这些技术,开发者可以构建更加高效和可维护的应用。 ... [详细]
  • 个人博客:打开链接依赖倒置原则定义依赖倒置原则(DependenceInversionPrinciple,DIP)定义如下:Highlevelmo ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有