在 Python 子类的构造函数中可以先调用父类的构造函数完成一些初始化动作,类似 Java 的 super() 或者 C# 的 base() 的作用,但是有一点不同之处:Python 类的所有成员函数的第一个参数都是 self ,即指向自己的一个对象实例,即:如果你是用类的对象实例调用成员函数,这个参数可以省略,因为 Python 知道 self 就是指向发出调用动作的那个对象;但是在类内部成员函数之间相互调用的时候,这个参数必须给出,否则就会出现错误。 所以,我们在调用父类的初始化函数 __init()__ 的时候: 第一个参数传入的是 self ,即指向自己的一个对象实例; 第二个参数是我们以前说过的父窗体的引用(可以为 None ,代表没有父窗体); 第三个参数一个窗体编号,一般情况下我们都用 wx.ID_ANY ,即 -1 ,代表由系统自动分配一个编号; 第四个参数就是窗体标题了
这样,我们就在窗体初始化的时候给窗体设置了一个标题。
另外还有一种方法是在窗体对象创建了以后改变窗体的标题,是利用 wx.Frame 的 SetTitle() 方法。 |
下面的代码创建了两个窗体,第一个窗体显示了初始化时候的标题内容,第二个窗体在创建以后利用 SetTitle() 方法改变了标题内容。
代码如下:
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):
13 wx.Frame.__init__(self,None,wx.ID_ANY,"Hello wxPython")
14 #居中
15 self.Center()
16 #显示
17 self.Show()
18
19 if __name__=='__main__':
20 #初始化程序
21 app=wx.App()
22 #创建窗体 1
23 MyFrame()
24
25 #创建窗体 2
26 frm2=MyFrame()
27 frm2.SetTitle("世界你好")
28
29 #开始消息循环
30 app.MainLoop()
2 # -*- coding: GBK -*-
3
4 import wx
5
6 """
7 设置窗体标题
8 """
9
10 class MyFrame(wx.Frame):
11
12 def __init__(self):
13 wx.Frame.__init__(self,None,wx.ID_ANY,"Hello wxPython")
14 #居中
15 self.Center()
16 #显示
17 self.Show()
18
19 if __name__=='__main__':
20 #初始化程序
21 app=wx.App()
22 #创建窗体 1
23 MyFrame()
24
25 #创建窗体 2
26 frm2=MyFrame()
27 frm2.SetTitle("世界你好")
28
29 #开始消息循环
30 app.MainLoop()
//==========================================
分类:
wxPython
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!