wxpython使用实例_wxPython实例一
效果:
代碼:
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'My Frame', size=(300, 300))
panel = wx.Panel(self, -1)
panel.Bind(wx.EVT_MOTION, self.OnMove)
wx.StaticText(panel, -1, 'Pos:', pos=(10, 12))
self.posCtrl = wx.TextCtrl(panel, -1, '', pos=(40, 10))
def OnMove(self, event):
pos = event.GetPosition()
self.posCtrl.SetValue('%s, %s' % (pos.x, pos.y))
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = MyFrame()
frame.Show(True)
app.MainLoop()
效果:
代碼:
# -*- coding: utf-8 -*-
import wx #導入必須的wxPython包
class App(wx.App): #子類化wxPython應用程序類
def OnInit(self): #定義一個應用程序的初始化方法,將被wx.App父類調用。
#定義了一個沒有父親的框架,它是一個頂級的框架
frame = wx.Frame(parent=None, title='Bare')
#給Show方法一個布爾值參數來設定frame的可見性,默認True
frame.Show()
return True
app = App() #創建一個應用程序類的實例
app.MainLoop() #進入這個應用程序的主事件循環
效果:
代碼:
# -*- coding: utf-8 -*-
import wx
class Frame(wx.Frame): #wx.Frame的子類
def __init__(self, image, parent=None, id=-1,
pos=wx.DefaultPosition,
title='Hello, wxPython!'):
temp = image.ConvertToBitmap()
size = temp.GetWidth(), temp.GetHeight() #用圖像的寬度和高度創建一個size元組
wx.Frame.__init__(self, parent, id, title, pos, size)
#用wx.StaticBitmap控件來顯示這個圖像,它要求一個位圖
self.bmp = wx.StaticBitmap(parent=self, bitmap=temp)
class App(wx.App): #wx.App的子類,這是wxPython應用程序最基本的要求
def OnInit(self): #定義一個應用程序的初始化方法,將被wx.App父類調用。
image = wx.Image('wxPython.jpg', wx.BITMAP_TYPE_JPEG)
self.frame = Frame(image)
#給Show方法一個布爾值參數來設定frame的可見性,默認True
self.frame.Show()
#一個wxPython程序可以有幾個框架,其中有一個是被設計為應用程序的頂級窗口的
self.SetTopWindow(self.frame)
#如果所返回的值是False,則應用程序將立即退出
return True
if __name__ == '__main__':
app = App() #創建一個應用程序類的實例
app.MainLoop() #進入這個應用程序的主事件循環
應用程序對象的生命周期
效果:
代碼:
# -*- coding: utf-8 -*-
import wx
import sys
class Frame(wx.Frame):
def __init__(self, parent, id, title):
print 'Frame __init__'
wx.Frame.__init__(self, parent, id, title)
class App(wx.App):
def __init__(self, redirect=True, filename=None):
print 'App __init__'
wx.App.__init__(self, redirect, filename)
def OnInit(self):
print 'OnInit' #輸出到stdout
self.frame = Frame(parent=None, id=-1, title='Startup') #創建框架
self.frame.Show()
self.SetTopWindow(self.frame)
print >> sys.stderr, 'A pretend error message' #輸出到stderr
return True
def OnExit(self):
print 'OnExit'
if __name__ == '__main__':
#標準輸出流sys.stdout和標準錯誤流sys.stderr是否重定向
#輸出到控制臺
#app = App(redirect=False)
#輸出到filename所指定的文件中
#app = App(redirect=True, filename='output')
#應用程序創建了一個空的框架和生成了一個用于重定向輸出的框架
app = App(redirect=True)
print 'before MainLoop'
app.MainLoop() #2 進入主事件循環
print 'after MainLoop'
效果:
代碼:
# -*- coding: utf-8 -*-
import wx
import wx.py.images as images
class ToolbarFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, 'Toolbars', size=(500, 400))
self.panel = wx.Panel(self)
self.panel.SetBackgroundColour('White')
self.statusBar = self.CreateStatusBar() #創建狀態欄
self.toolbar = self.CreateToolBar() #創建工具欄
self.toolbar.AddSimpleTool(wx.NewId(), images.getPyBitmap(), 'New', 'Long help for "New"') #給工具欄增加一個工具
self.toolbar.Realize() #準備顯示工具欄
self.menuBar = wx.MenuBar() #創建菜單欄
# 創建兩個菜單
menu1 = wx.Menu()
self.menuBar.Append(menu1, '&File')
menu2 = wx.Menu()
#創建菜單的項目
menu2.Append(wx.NewId(), '&Copy', 'Copy in status bar')
menu2.Append(wx.NewId(), 'C&ut', '')
menu2.Append(wx.NewId(), 'Paste', '')
menu2.AppendSeparator()
menu2.Append(wx.NewId(), '&Options...', 'Display Options')
self.menuBar.Append(menu2, '&Edit') # 在菜單欄上附上菜單
self.SetMenuBar(self.menuBar) #在框架上附上菜單欄
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = ToolbarFrame(parent=None, id=-1)
frame.Show()
app.MainLoop()
效果:
代碼:
# -*- coding: utf-8 -*-
import wx
if __name__ == '__main__':
app = wx.PySimpleApp()
dialog = wx.MessageDialog(None, 'Is this the coolest thing ever!',
'MessageDialog', wx.OK | wx.ICON_QUESTION | wx.CANCEL)
#將對話框以模式框架的方式顯示,這意味著在對話框關閉之前,
#應用程序中的別的窗口不能響應用戶事件.對于wx.MessageDialog,返回值
#是下面常量之一: wx.ID_YES, wx.ID_NO, wx.ID_CANCEL, wx.ID_OK
result = dialog.ShowModal()
dialog.Destroy()
app.MainLoop()
效果:
代碼:
# -*- coding: utf-8 -*-
import wx
if __name__ == '__main__':
app = wx.PySimpleApp()
dlg = wx.TextEntryDialog(None, "Who is buried in Grant's tomb?", 'A Question', 'Cary Grant')
if dlg.ShowModal() == wx.ID_OK:
response = dlg.GetValue()
print response
效果:
# -*- coding: utf-8 -*-
import wx
if __name__ == '__main__':
app = wx.PySimpleApp()
dlg = wx.SingleChoiceDialog(None, 'What version of Python are you using?',
'Single Choice', ['1.5.2', '2.0', '2.1.3', '2.2', '2.3.1'])
if dlg.ShowModal() == wx.ID_OK:
index = dlg.GetSelection()#返回用戶選項的索引
response = dlg.GetStringSelection()#返回實際所選的字符串
print index, ': ', response
總結
以上是生活随笔為你收集整理的wxpython使用实例_wxPython实例一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈网址导航网站的成功推广方案大揭秘
- 下一篇: 离线安装wxpython4.0.6_离线