#coding=utf-8
import wx
import time
import os class MyApp(wx.App): def __init__(self):
wx.App.__init__(self) def OnInit(self):
self.Frame = wx.Frame(parent=None,title = "我的第一个GUI程序",pos = (350,200),size = (1000,800))
self.Frame.SetMaxSize((1000,800))
self.Frame.SetMinSize((1000,800))
self.SetTopWindow(self.Frame)
self.panel = wx.Panel(self.Frame,-1)
self.Set_Ui_text()
self.Set_Button()
self.Set_Test_Ctrl()
self.Set_Image()
self.Set_Menu()
self.Set_Radio_Box()
self.Set_List_Box()
#image1 = wx.Image("timg.bmp")
#mage = wx.StaticBitmap(self.panel,-1,wx.BitmapFromImage(image1))
sizer =self.Set_Sizer()
self.Frame.SetSizer(sizer)
#self.Frame.Fit()
self.Frame.Show() return True def Set_Sizer(self):
sizer = wx.GridSizer(rows = 4,cols = 4 ,hgap = 5,vgap = 5)
#sizer.Add(self.button)
sizer.Add(self.inputext)
#sizer.Add(mage)
sizer.Add(self.radiobox1)
sizer.Add(self.radiobox2)
sizer.Add(self.listbox1)
sizer.Add(self.listbox2)
sizer.Add(self.listbox3)
sizer.Add(self.listbox4)
sizer.Add(self.gauge1)
sizer.Add(self.slider)
sizer.Add(self.button1) return sizer def Set_Ui_text(self):
self.label = wx.StaticText(self.panel, label="相关测试",size=(-1, 50))
font = wx.Font(18, wx.ROMAN, wx.NORMAL, wx.NORMAL)
self.label.SetFont(font)
self.label.SetBackgroundColour("balck")
self.label.SetForegroundColour("red") def Set_Button(self):
self.button = wx.Button(self.panel, -1, "按钮1", pos=(300,50),size=(-1, -1))
font = wx.Font(18, wx.ROMAN, wx.NORMAL, wx.NORMAL)
self.button.SetFont(font)
self.Bind(wx.EVT_BUTTON, self.two_play, self.button) def Set_Test_Ctrl(self):
self.inputext = wx.TextCtrl(self.panel, -1, "请您输入版本路径:", size=(200, 40))
self.inputext.Bind(wx.EVT_LEFT_DOWN,self.open_File)
font = wx.Font(18, wx.ROMAN, wx.NORMAL, wx.NORMAL)
self.inputext.SetFont(font)
#self.inputext.SetInsertionPoint(0) def Set_Image(self):
bmp = wx.Image("timg.bmp", wx.BITMAP_TYPE_BMP).ConvertToBitmap()
self.button1 = wx.BitmapButton(self.panel, -1, bmp, size=(-1, -1))
self.button1.Bind(wx.EVT_LEFT_DOWN, self.one_play) def Set_Menu(self):
menubar = wx.MenuBar()
menu1 = wx.Menu()
menu3 = wx.Menu()
bbu1 = menu1.Append(-1, "B2200")
bbu2 = menu1.Append(-1, "B3200")
cc1 = menu3.Append(-1, "cc1")
cc2 = menu3.Append(-1, "cc2")
cc3 = menu3.Append(-1, "cc3")
menu1.AppendMenu(-1, "CC", menu3)
self.Bind(wx.EVT_MENU, self.one_play, bbu1)
self.Bind(wx.EVT_MENU, self.one_play, bbu2)
menubar.Append(menu1, "菜单")
menu2 = wx.Menu()
menu2.AppendSeparator()
rru1 = menu2.Append(-1, "R2254")
rru2 = menu2.Append(-1, "R2252")
self.Bind(wx.EVT_MENU, self.one_play, rru1)
self.Bind(wx.EVT_MENU, self.one_play, rru2)
menubar.Append(menu2, "工具")
# 设置弹出菜单
self.Menu4 = wx.Menu()
self.Menu4.Append(-1, "1")
self.Menu4.Append(-1, "2")
self.Menu4.Append(-1, "3")
self.Menu4.Append(-1, "4")
self.Bind(wx.EVT_CONTEXT_MENU, self.Menu4_Test)
self.Frame.SetMenuBar(menubar)
print menubar.GetLabelTop(0)
print menubar.FindMenu("BBU")
# 状态栏
status = self.Frame.CreateStatusBar()
status.SetStatusText("write bu zhouqiang") def Menu4_Test(self,event):
pos = event.GetPosition()
print pos
pos = self.panel.ScreenToClient(pos)
print pos
self.panel.PopupMenu(self.Menu4,pos) def Set_Radio_Box(self):
list1 = ["BPN2", "BPL1", "BPC"]
list2 = ["RRU1", "RRU2", "RRU3"]
self.radiobox1 = wx.RadioBox(self.panel, -1, "网管选择", (-1, -1), (200, 20), list1, 3, wx.RA_SPECIFY_COLS)
self.radiobox2 = wx.RadioBox(self.panel, -1, "射频设备选择", (-1, -1), (200, 20), list2, 3, wx.RA_SPECIFY_ROWS)
self.radiobox1.Bind(wx.EVT_RADIOBOX, self.four_play)
self.radiobox2.Bind(wx.EVT_RADIOBOX, self.five_play) def Set_List_Box(self):
list1 = ["BPN2", "BPL1", "BPC"]
list2 = ["RRU1", "RRU2", "RRU3"]
# ListBox类实例
self.listbox1 = wx.ListBox(self.panel, -1, (-1, -1), (200, 60), list1, wx.LB_SINGLE) # wx.LB_SINGLE只能选择单个
self.listbox2 = wx.ListBox(self.panel, -1, (-1, -1), (200, 60), list2, wx.LB_MULTIPLE) # 多选
# CheckListBox类实例
self.listbox3 = wx.CheckListBox(self.panel, -1, (-1, -1), (200, 60), list1)
# Choice类实例
self.listbox4 = wx.Choice(self.panel, -1, (-1, -1), (200, 40), list2)
self.listbox4.Bind(wx.EVT_CHOICE, self.three_play)
# 进度条展示
self.gauge1 = wx.Gauge(self.panel, -1, 100, (-1, -1), (200, 60))
self.value = 1
self.gauge1.SetValue(self.value)
# 将wx空闲的事件绑定到进度条上
self.Bind(wx.EVT_IDLE, self.Gauge_Test)
# 滑块
self.slider = wx.Slider(self.panel, -1, 10, 10, 100, (-1, -1), (200, 60))
self.slider.Bind(wx.EVT_SCROLL, self.Slider_Test) def one_play(self,event):
print "这是一个回调函数" def Gauge_Test(self,event):
if self.value < 100:
self.value += 1
time.sleep(0.3)
self.gauge1.SetValue(self.value) def Slider_Test(self,event):
value = self.slider.GetValue()
print "now value is:",value def open_File(self,event):
file = wx.FileDialog(None,"choose you file",os.getcwd(),"","",wx.FD_OPEN)
if file.ShowModal() == wx.ID_OK:
i = file.GetPath()
print i
file.Destroy()
self.inputext.SetLabel(i) def two_play(self,vent):
dlg = wx.ProgressDialog("执行进度条","进行中",100,style = wx.PD_CAN_ABORT)
value = 0
while value < 100:
value += 1
time.sleep(0.1)
dlg.Update(value)
else:
dlg.Destroy() def three_play(self,event):
wx.MessageBox("这是一个回调函数","123456") def four_play(self,event):
data = wx.GetTextFromUser("plase input you dota:","one and one")
print data def five_play(self,event):
list1 = ('1','2','3','4','9')
data2 = wx.GetSingleChoice("what do you what:","12345",list1)
print data2 if __name__=="__main__":
MyApp().MainLoop()

wxpython模板程序,包括各个实例的更多相关文章

  1. c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0);

    本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit ...

  2. 仅用aspx文件实现Ajax调用后台cs程序。(实例)

    仅用aspx文件实现Ajax调用后台cs无刷新程序.(实例) 两个文件:aaa.aspx 和aaa.aspx.cs 一.aaa.aspx <script type="text/java ...

  3. java基础,继承类题目:编写一个Java应用程序,该程序包括3个类:Monkey类、People类和主类 E

    21.编写一个Java应用程序,该程序包括3个类:Monkey类.People类和主类 E.要求: (1) Monkey类中有个构造方法:Monkey (String s),并且有个public vo ...

  4. 关于wxpython多线程研究包括(import Publisher错误研究)

    作为一个自动化测试人员,开发基本的应用桌面程序是必须的!最近在研究wxpython相关知识,目前看到多线程一块,发现官方文档介绍说:"在线程中不能修改修改窗口属性!",但是实际情况 ...

  5. 关于wxpython多线程研究包括(import Publisher等错误研究)

    作为一个自动化测试人员,开发基本的应用桌面程序是必须的!最近在研究wxpython相关知识,目前看到多线程一块,发现官方文档介绍说:"在线程中不能修改修改窗口属性!",但是实际情况 ...

  6. ROS Learning-018 Arduino-For-ROS-003 (总结篇) 模板程序 即 如何运行

    Arduino For ROS-003 - (总结篇) 模板程序 即 如何运行 我的Ubuntu系统:Ubuntu 14.04.10 TLS 32位 Arduino的版本:Arduino 1.6.11 ...

  7. 第六章 “我要点爆”微信小程序云开发实例之爆文详情页制作

    爆文详情页制作 从首页中数据列表打开相应详情页面的方法: 给数据列表中每个数据项加一个点击事件,同时将当前数据项的id暂时记录在本地,然后跳转到详情页面detail goopen: function ...

  8. WPF 启动唯一程序(项目,exe,实例)

    原文:WPF 启动唯一程序(项目,exe,实例) 描述:用户多次快速开启WPF程序的时候  只运行起来 一个 程序(exe) 其他多开的 进程 自动关闭掉 App.xaml.cs文件 protecte ...

  9. 用PYTHON首选的GUI库WXPYTHON做程序界面

    大家好,我是A8U神经网络,今天又要跟大家分享一下wxWidgets开发神经网络程序界面的一些经验,希望对开发有兴趣的朋友有所帮助.跨平台的GUI工具库以GTK +,Qt和wxWidgets闻名. G ...

随机推荐

  1. 【leetcode】622. Design Circular Queue

    题目如下: Design your implementation of the circular queue. The circular queue is a linear data structur ...

  2. mysql SELECT INTO语句 语法

    mysql SELECT INTO语句 语法 作用:用于创建表的备份复件. 语法:SELECT * INTO new_table_name [IN externaldatabase]  FROM ol ...

  3. luogu 4381 [IOI2008]Island 单调队列 + 基环树直径 + tarjan

    Description 你将要游览一个有N个岛屿的公园.从每一个岛i出发,只建造一座桥.桥的长度以Li表示.公园内总共有N座桥.尽管每座桥由一个岛连到另一个岛,但每座桥均可以双向行走.同时,每一对这样 ...

  4. [CSP-S模拟测试]:big(Trie树+贪心)

    题目描述 你需要在$[0,2^n)$中选一个整数$x$,接着把$x$依次异或$m$个整数$a_1~a_m$.在你选出$x$后,你的对手需要选择恰好一个时刻(刚选完数时.异或一些数后或是最后),将$x$ ...

  5. [CSP-S模拟测试]:string(线段树)

    题目描述 给定一个由小写字母组成的字符串$s$. 有$m$次操作,每次操作给定$3$个参数$l,r,x$. 如果$x=1$,将$s[l]~s[r]$升序排序: 如果$x=0$,将$s[l]~s[r]$ ...

  6. characteristics of competent communicators

    https://www.universalclass.com/articles/business/communication-studies/be-a-competent-communicator.h ...

  7. netflow-module

    https://www.elastic.co/guide/en/logstash/current/netflow-module.html

  8. React Native商城项目实战14 - 首页中间下部分

    1.MiddleBottomView.js /** * 首页中间下部分 */ import React, { Component } from 'react'; import { AppRegistr ...

  9. C# 调Win32 API SendMessage简单用法及wMsg常量

    函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.该函数是应用程序和应用程序之间进行消息传递的主要手段之一.     函数原型:LRESU ...

  10. VMware 虚拟化编程(6) — VixDiskLib 虚拟磁盘库详解之二

    目录 目录 前文列表 VixDiskLib 虚拟磁盘库 VixDiskLib_Open 打开 VMDK File VixDiskLib_Read 读取 VMDK File 数据 VixDiskLib_ ...