第一个 wxPython 窗体应用程序

Posted 风间苍月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个 wxPython 窗体应用程序相关的知识,希望对你有一定的参考价值。

1、需求说明
创建一个主窗体
在窗体上放置一个菜单栏
在菜单栏中放置一个下拉菜单
在下拉菜单中放置一个菜单项
给菜单项绑定一个单击事件,在单击事件中打开文件选择对话框,获取选择文件名

2、代码

 1 import wx
 2 import fileinput
 3 
 4 class frmMain(wx.Frame):
 5     app = wx.App()
 6     menuBar = None
 7     fileMenu = None
 8     openMenuItem = None
 9     fileDialog = None
10 
11     def __init__(self, *args):
12         super(frmMain, self).__init__(*args)
13         self.menuBar = wx.MenuBar()
14         self.fileMenu = wx.Menu()
15         self.openMenuItem = wx.MenuItem(self.fileMenu, 1, &Open..\tCtrl+O)
16         self.fileMenu.Append(self.openMenuItem)
17         self.menuBar.Append(self.fileMenu, title="File")
18         self.SetMenuBar(self.menuBar)
19         self.fileDialog = wx.FileDialog(self, "Open File", wildcard="files (*.html)|*.html", style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
20         self.Bind(wx.EVT_MENU, self.menu_Click)
21         self.SetSize((300,400))
22         self.Center()
23         self.Show()
24         self.app.MainLoop()
25 
26     def menu_Click(self, event):
27         if self.fileDialog.ShowModal() == wx.ID_CANCEL:
28             return
29         pathname = self.fileDialog.GetPath()
30         try:
31             with fileinput.input(pathname) as file:
32                 line = file.readline()
33                 print(line)
34         except IOError:
35             wx.LogError("Cannot open file ‘%s‘." % pathname)

 

3、逐行解释
第4行:主窗体类继承 wx.Frame
第6-9行:

  • menuBar 窗体类成员菜单栏控件
  • fileManu 窗体类成员下拉菜单控件
  • openMenuItem 窗体类成员菜单项控件
  • fileDialog 窗体类成员文件对话框控件

第11行:构造函数,必须添加参数 *agrs,否则窗体无法被实例化。
第12行:必须调用基类的构造函数,否则窗体无法被实例化。
第13-22行:
实例化菜单栏
实例化下拉菜单
实例化菜单项
将菜单项添加至下拉菜单中
将下拉菜单添加至菜单栏中
将菜单栏添加至窗体中
实例化文件对话框:wildcard 表示限制选择的文件扩展名,

以上是关于第一个 wxPython 窗体应用程序的主要内容,如果未能解决你的问题,请参考以下文章

wxpython如何固定窗体大小,使之不能拉伸或缩放?

wxPython应用心得

wxPython应用心得

wxpython 的应用

wxPython最简单入门

在Ubuntu中打开文件时出现wxPython错误