Python GUI之wxPython将自己从繁琐工作中解放,希望这篇文章可以帮助到想学习或者正在学习Python wxPython的码农。——朱学敏
GUI 即图形用户接口,准确来说 GUI 就是屏幕产品的视觉体验和互动操作部分,它强调人—机—环境三者作为一个系统进行总体设计。wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。它是一款开源软件,具有非常优秀的跨平台能力。由于使用Python作为编程语言,wxPython编写简单、易于理解。
wxPython它由应用程序对象和顶级窗口对象组成,用于支持应用程序的其余部分。应用程序对象管理主事件循环,主事件循环是你的wxPython程序的动力,启动主事件循环是应用程序对象的工作。顶级窗口通常管理最重要的数据,控制并呈现给用户。适当地使用这两个对象,将使得构造应用程序的其余部分更容易。
wxPython的事件处理机制对于新手来说,理解比较吃力,且wxpython文档也超烂,庆幸的是有个完整的API文档及相当完整的Demo。所以我建议先不要去试图挖掘wxpython的原理,解释性的语言,优势之一就是边写代码边看结果。可以对着Demo,尝试写一些GUI。把wxPython源码包自带的Demo跑一遍,改一改,慢慢上手。先多动手,多做点实用的东西出来,由小到大,熟练掌握它的各种控件使用方法。然后再回过头来学习它的一些机制原理,了解它的各个模块之间的关系。
平时我主要用Python来写一些系统运维、文本处理、数据爬虫与自动化工具。近期,我所开发的一个AutoWork3.0项目需要部署一个图形用户界面,为自己写的程序加上GUI并打包成工具,来帮整个团队提升工作效率。因此,我会使用跨平台的Python GUI开发包来进行原型开发。
# -*- coding:utf-8 -*-
# __author__"zhuxuemin"
import httplib
import urllib
import time
import json
class Transaction(object):
def __init__(self):
self.custom_timers = {}
def run(self):
conn = httplib.HTTPConnection("localhost:8080")
headers = {"Content-type": "application/json"}
params = ({"bindHyCardInfo":{"mobile":"******","username":"******","hYCardno":line,"bankCardNo":"******","ip":"127.0.0.1"},"header":{"version":"1.0.1","from":"1000","to":"2000","tid":line,"time":"12312","token":"SEW342WEER2342","ext":""}})
start = time.time()
conn.request("POST", "/core-oper/rest/bindHyCard", json.JSONEncoder().encode(params), headers)
response = conn.getresponse()
response_time = time.time()
data = response.read()
print data
conn.close()
transfer_time = time.time()
self.custom_timers['response received'] = response_time - start
self.custom_timers['content transferred'] = transfer_time - start
if __name__ == '__main__':
file = open("D://BATs.txt")
while 1:
lines = file.readlines()
if not lines:
break
for line in lines:
line = line.strip('n')
trans = Transaction()
trans.run()
for timer in ('response received', 'content transferred'):
print '%s: %.5f secs' % (timer, trans.custom_timers[timer])
file.close()