码迷,mamicode.com
首页 > 编程语言 > 详细

第一个 wxPython 窗体应用程序

时间:2018-02-05 23:17:28      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:sel   ioerror   下拉菜单   try   return   bar   选择   扩展   dia   

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 窗体应用程序

标签:sel   ioerror   下拉菜单   try   return   bar   选择   扩展   dia   

原文地址:https://www.cnblogs.com/swingingmace/p/8419431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!