CGI--python图形化(wxpython包)
目录
(2)pip install wxpython -i 国内的源
1.图形化CGI
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面
CGI | web端的接口 |
GUI | 图形用户界面 |
2.图形化的结构
主循环 | 一个图形化程序的核心 |
组件 | 按钮 |
文本框 | |
滚动条 | |
事件 | 函数 |
3.python导入图形化
wx | 跨平台图形化,但是linux不好安装 |
tkinter | 真正的图形化,国外大学必须学 |
pyqt | python最成熟的图形化,帮助文档:724000行 |
pywin | windows下的图形化,可以做外挂 |
4.python导入第三方的包wxpython的方法
(1)pip install wxpython
国外的网址
(2)pip install wxpython -i 国内的源
清华大学 | https://pypi.tuna.tsinghua.edu.cn/simple |
阿里云 | http://mirrors.aliyun.com/pypi/simple/ |
中国科技大学 | https://pypi.mirrors.ustc.edu.cn/simple/ |
华中理工大学 | http://pypi.hustunique.com/ |
山东理工大学 | http://pypi.sdutlinux.org/ |
豆瓣 | http://pypi.douban.com/simple/ |
(3)pycharm
4.图形化结构的代码实现
#coding:utf-8
import wx
app=wx.App()#创建主循环(创建应用)死循环
frame=wx.frame(None)#窗口组件
"""
frame的参数有:
parent 父组件
id=ID_ANY 组件的标识
title=EmptyString 文本框的标题
pos=DefaultPosition 位置 图形化的左上角点距离上层图形左和上的距离
size=DefaultSize 尺寸 宽高
style=DEFAULT_FRAME_STYLE 样式
"""
wx.Button()
"""
按钮:
label=EmptyString
validator=DefaultValidator
"""
wx.TextCtrl()
"""
文本框:
value=EmptyString 文本框里的值
"""
frame.Show()#Show 属性
app.MainLoop()#启动主循环
5.案例
(1)需求
把文件的路径填进去,保存,把文件的内容展示在文本框中
在文本框中填入自己想写的数据,填好路径,保存文件
import wx
def openFile(event):
path = path_text.GetValue()
with open(path, "rb") as f:
content_text.SetValue(f.read().decode())
def saveFile(event):
path = path_text.GetValue()
with open(path, "wb") as f:
content = content_text.GetValue()
f.write(content.encode())
app = wx.App()
frame = wx.Frame(None, title="老边的图形化", size=(485, 400))
path_text = wx.TextCtrl(frame, value="图形化", pos=(5, 5), size=(300, 24))
open_button = wx.Button(frame, label="打开", pos=(310, 5), size=(72, 24))
open_button.Bind(wx.EVT_BUTTON, openFile)
save_button = wx.Button(frame, label="保存", pos=(392, 5), size=(72, 24))
save_button.Bind(wx.EVT_BUTTON, saveFile)
content_text = wx.TextCtrl(frame, pos=(5, 34), size=(457, 321), style=wx.TE_MULTILINE)
frame.Show()
app.MainLoop()
(2)效果
打开文件
保存文件
解决办法:在py脚本中写入
#coding:gbk
注意:读进去数据,要进行解码 decode
写进去数据,要进行编码 encode
并且编码解码要保持一致 ,都用gbk编码