当前位置: 首页 > news >正文

wxpython分页

两段代码如果用到的库都差不多,分开打包是两个20M的exe,合在一起是一个20M的exe,大部分人都会选择打包在一起。

但是很多的代码都放在一个版面就会显得十分混乱,并且用到的库差不多并不意味着达成的效果也差不多,放在一起在使用时很容易产生误操。通过按键呼出新窗口?也可以,但是依旧麻烦。

本文倡议在此种情况下使用 wx.Notebook  进行分页来解决这个问题。

一、

首先我们需要创建一个主面板

class MyNotebook(wx.Notebook):
    def __init__(self, parent):
        self.parent = parent
        wx.Notebook.__init__(self, parent)
        self.page1 = MyPage1(self)
        self.page2 = MyPage2(self)
        self.AddPage(self.page1, "page1")#
        self.AddPage(self.page2, "page2")
class main_label(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'HKT', size=(500, 350),
                          style=wx.CAPTION | wx.MINIMIZE_BOX | wx.CLOSE_BOX |         
                          wx.SYSTEM_MENU)
        self.panel = wx.Panel(self, -1)
        self.mnotebook = MyNotebook(self.panel)
        self.mnotebook.Show()
        bs = wx.BoxSizer(wx.VERTICAL)    #使用布局
        bs.Add(self.mnotebook, 1, wx.EXPAND)
        self.panel.SetSizer(bs)


        self.Center()
        self.Show()


if __name__ == '__main__':
    app = wx.App()  # 创建应用程序对象
    login = main_label()
    app.MainLoop()

二、

然后就是我们的子界面啦

class MyPage1(wx.Panel):

    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.parent = parent
        #中间省略布局、按键、文本、绑定.....

        self.SetBackgroundColour('white')   #设置背景色

三、

差点忘了,还有图片的问题,如果界面中需要用到图片

我们可以将图片转换成编码格式

转换方法有两种,第一种是直接转换

import base64

#
# path=r'C:\Users\xxx\Desktop\ssss\can.png'
# pic = open(path, "rb")
# pic_base64 = base64.b64encode(pic.read())
#
# print(pic_base64)
# b=0
# for i in str(pic_base64):
#     print(i,end='')
#     b+=1
#     if b%50==0:
#         print("\\"+'\n',end='')
# pic.close()

第二种是通过wx库附带的image转换

到任意有wxpython库 的目录

C:\Users\xxx\Desktop\programs\ssss\venv\Lib\site-packages\wx\tools

 可以看到有许多的py文件,这个图片文件是我嫌麻烦直接复制进来的,处理完可以搬走或者删除

 

 >python img2py.py -n sss  -a 1708170.png aaa.py

其中sss 是储存到py文件后的参数名,aaa是新建py文件名

最后

本文学习来源:python wx下的Frame登录切换以及wx.Notebook实现的简单页面切换_Alfie happy的博客-CSDN博客

相关文章:

  • Java输入/输出之RandomAccessFile的功能和用法
  • RNNGNULSTM与PyTorch
  • Python升级之路( Lv15 ) 并发编程三剑客: 进程, 线程与协程
  • 南大通用GBase 8a MPP Cluster开发接口简介
  • IntelliJ IDEA 插件推荐
  • Rt-Thread 启动流程与组件初始化
  • CentOS-7-x86_64 iso镜像的安装(Linux操作系统)
  • Parcel配置public静态文件目录
  • 设计模式——策略模式
  • “一万字”动静图生动结合详解:快速排序
  • Linux命令详解(14)useradd命令
  • 面试题之Java的异常
  • k8s helm Seata1.5.1
  • 物业公司如何解决降本增收?快鲸智慧社区系统来帮你
  • MobTech 短信验证Android端 API
  • @jsonView过滤属性
  • Android开源项目规范总结
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • JavaScript创建对象的四种方式
  • jquery cookie
  • Laravel 菜鸟晋级之路
  • MySQL用户中的%到底包不包括localhost?
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 构建工具 - 收藏集 - 掘金
  • 免费小说阅读小程序
  • 前端技术周刊 2019-01-14:客户端存储
  • 入门级的git使用指北
  • 一个SAP顾问在美国的这些年
  • 一些css基础学习笔记
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ​什么是bug?bug的源头在哪里?
  • # 达梦数据库知识点
  • #laravel 通过手动安装依赖PHPExcel#
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (java)关于Thread的挂起和恢复
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .Net Core与存储过程(一)
  • .NET Micro Framework初体验
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net 怎么循环得到数组里的值_关于js数组
  • .Net8 Blazor 尝鲜
  • /etc/fstab 只读无法修改的解决办法
  • ;号自动换行
  • ?php echo ?,?php echo Hello world!;?
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @SuppressWarnings注解
  • [ C++ ] STL---string类的模拟实现
  • [ C++ ] STL---仿函数与priority_queue
  • [ 数据结构 - C++]红黑树RBTree