wxPython 笔记(7)设定窗体的位置和大小

简介:
在 Python 子类的构造函数中可以先调用父类的构造函数完成一些初始化动作,类似 Java 的 super() 或者 C# 的 base() 的作用,但是有一点不同之处:Python 类的所有成员函数的第一个参数都是 self ,即指向自己的一个对象实例,即:如果你是用类的对象实例调用成员函数,这个参数可以省略,因为 Python 知道 self 就是指向发出调用动作的那个对象;但是在类内部成员函数之间相互调用的时候,这个参数必须给出,否则就会出现错误。
所以,我们在调用父类的初始化函数 __init()__ 的时候:
第一个参数传入的是 self ,即指向自己的一个对象实例;
第二个参数是我们以前说过的父窗体的引用(可以为 None ,代表没有父窗体);
第三个参数一个窗体编号,一般情况下我们都用 wx.ID_ANY ,即 -1 ,代表由系统自动分配一个编号;

第四个参数是窗体标题

 

第五个参数传入一个坐标,代表窗体左上角的位置

 

第六个参数传入窗体的长度和宽度 


这样,我们就在窗体初始化的时候设置了窗体的位置和大小。
 

如果是在窗体对象创建了以后改变窗体对象的位置和大小,则可以利用 wx.Frame 的相关方法。

有三个方法可以改变窗体对象的位置,分别是:

1、MoveXY(x,y) 方法

2、Move(point) 方法

3、SetPosition(point) 方法

 

另外还有两个方法可以改变窗体的大小,分别是: 

1、SetDimensions(x, y, width, height)方法

2、SetSize(size) 方法 

下面的例子中创建了两个窗体,其中一个在初始化的时候设置好了窗体的位置和大小,另外一个窗体则在窗体对象创建以后改变了窗体的位置和大小。

代码如下: 

复制代码
 1  # !/usr/bin/python
 2  #  -*- coding: GBK -*-
 3 
 4  import  wx
 5 
 6  """
 7  设定窗体的位置和大小
 8  """
 9 
10  class  MyFrame(wx.Frame):
11      
12       def   __init__ (self,strTitle):
13          wx.Frame. __init__ (self,parent = None,id = wx.ID_ANY,title = strTitle ,pos = ( 100 , 100 ),size = ( 640 , 320 ))
14           # 显示
15          self.Show()
16 
17  if   __name__ == ' __main__ ' :
18       # 初始化程序
19      app = wx.App()
20       # 创建窗体 1
21      MyFrame( " #1 " )
22 
23       # 创建窗体 2
24      frm2 = MyFrame( " #2 " )
25      frm2. MoveXY( 400 , 400 )
26      frm2. SetSize (( 320 , 640 ))
27      
28          
29       # 开始消息循环
30      app.MainLoop()
复制代码

 

 

 

//==========================================



本文转自左洸博客园博客,原文链接:http://www.cnblogs.com/myqiao/archive/2010/11/29/1891555.html,如需转载请自行联系原作者


目录
相关文章
|
Linux
`grep`命令搜索当前目录及其子目录下的所有文件
`grep`命令搜索当前目录及其子目录下的所有文件
4621 1
|
存储 算法 数据安全/隐私保护
【密码学】一文读懂白盒AES(Chow方案)(一)
本文主要参考了文献^[1], 代码参考了^[2], 这里感谢文献作者和代码作者,如果有能力的大佬,可以自行查看原文献,个人水平有限,有哪里写的不对的地方,也欢迎读者指正。
4483 0
【密码学】一文读懂白盒AES(Chow方案)(一)
|
7月前
|
大数据 BI 数据可视化
最新功能发布!AllData数据中台核心菜单汇总
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
最新功能发布!AllData数据中台核心菜单汇总
|
9月前
|
SQL 缓存 关系型数据库
MySQL Limit实现原理
本文深入解析了MySQL中`LIMIT`子句的实现原理及其在分页、性能优化等场景下的应用技巧。文章详细介绍了`LIMIT`的基本语法、MySQL内部处理流程,以及如何通过索引优化、覆盖索引等策略提升分页查询的性能,并提供了实践建议。
698 3
|
11月前
|
JavaScript 前端开发
原生js实现走马灯效果
原生js实现走马灯效果
150 0
|
12月前
|
JavaScript 前端开发 索引
JavaScript 数组中splice()的用法
本文介绍了JavaScript数组方法splice()的三种用法:删除元素、插入元素和替换元素,通过具体代码示例展示了如何使用splice()方法进行数组的修改操作。
|
机器人 Shell 开发者
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
|
人工智能 算法 网络协议
【Hello AI】AI通信加速库Deepnccl-实现更高效的多GPU互联通信
Deepnccl是为阿里云神龙异构产品开发的一种用于多GPU互联的AI通信加速库,在AI分布式训练或多卡推理任务中用于提升通信效率。本文主要介绍Deepnccl的架构、优化原理和性能说明。
|
存储 API 数据安全/隐私保护
邮箱收不到验证码邮件是什么原因
在互联网应用中,未收到验证码邮件常令人困扰。原因包括:邮件误标为垃圾、邮箱设置不当、发件服务器故障、邮箱地址输入错误,及ISP拦截。解决策略有检查垃圾邮件、清理邮箱、修正设置、确认邮箱地址无误、联系服务提供商与ISP,或尝试其他邮箱服务。使用AOKSend等可靠邮件服务可提升送达率,其优势在于高送达率、实时监测与易集成性,确保验证码邮件及时准确到达,改善用户体验。