python编写可视化界面,python如何实现可视化

  python编写可视化界面,python如何实现可视化

  简介最近用Python开发了一些简单的辅助脚本,发现这真的是一门有趣的语言。于是,我想到了用python开发一些有图形可视化界面(GUI)的程序。对于python来说,支持GUI可视化程序开发的框架非常多,比如Tkinter,wxPython,PyQt5,Gtk等等。经过一番问答,我最终选择了wxPython。我个人认为wxFormBuilder这款匹配wxPython的开发工具的图形可视化界面非常好,它可以帮助我们快速直观的搭建一个GUI界面。

  一、wxPython简介wxPython是wxWidgets的Python包装器(C语言编写),是一个流行的跨平台GUI工具包。wxPython由Robin Dunn和Harri Pasanen开发,实现为Python扩展模块。

  就像wxWidgets一样,wxPython也是一款免费软件。可以从http://wxpython.org官方网站下载。许多操作系统平台的二进制文件和源代码都可以从这个网站下载。

  wxPython API中的主要模块包括一个核心模块。它由wxObject类组成,是API中所有类的基础。控制模块包含GUI应用程序开发中使用的所有小部件。比如wx。按钮,wx。StaticText(类似于标签),wx。TextCtrl(可编辑文本控件)等。

  Wxapi有GDI(图形设备接口)模块。它是一组用于绘制小部件的类。像字体、颜色、画笔等类。是它的一部分。所有容器窗口类都在窗口模块中定义。

  wxPython的官方网站还托管了Phoenix项目Python3的wxPython新实现。它侧重于提高速度、可维护性和可伸缩性。该项目始于2012年,目前仍处于测试阶段。

  第二,wxPythonhelloworld使用pip下载wxpthon依赖库

  pip安装程序wxPython

  我们想要创建Hello World消息的简单GUI应用程序需要以下步骤来构建

  1.导入wx模块。

  2.定义应用程序类的对象。

  3.创建一个顶层窗口作为wx的对象。框架类。标题和大小参数在构造函数中给出。

  4.尽管可以将其他控件添加到Frame对象中,但不能管理它们的布局。因此,将一个面板对象放入框架中。

  5.添加一个StaticText对象以在窗口中的所需位置显示“Hello World”。

  6.通过show()方法激活框架窗口。

  7.进入应用程序对象的主事件循环。

  特定代码:

  导入wxapp=wx。App()窗口=wx。Frame(None,title=wxPython Frame ,size=(300,200))panel=wx。面板(窗)标签=wx。StaticText(panel,label=Hello World ,pos=(100,50))窗口。显示(真实)应用程序。主循环()

  第三,安装图形可视化生成工具来手动编写图形可视化生成工具来创建漂亮的GUI可能很繁琐。一个可视化的GUI设计工具,总能帮助我们少走很多弯路,节省很多时间;WxFormBuilder就是这样一个优秀的可视化GUI设计工具。wxFormBuilder是一款开源的跨平台WYSIWYG GUI builder,可以将wxWidget GUI设计转换成C、Python、PHP或XML格式。

  目前整个项目已经移植到github:项目门户。

  请在本地下载最新版本的wxFormBuilder并安装安装包。

  四。使用wxFormBuild创建第一个图形可视化界面这里我们使用wxFormBuild创建一个简单的计算器:用户输入一个数字,然后输出这个数字的平方

  1.创建一个项目并选择Python预言。

  2.选择框架控件

  3.选择布局模式

  4.选择wxStaticText

  5.选择wxTextControl

  6.选择wx按钮,

  7.选择wxStaticText

  8.为按钮添加点击响应事件find_square。

  成功添加上述控件后,点击F8,一个带*的python文件。py后缀将在当前目录中生成。

  # -*-编码:utf-8-*-## # # # # # # # # # # # # # # # # # #用wxFormBuilder(版本3.10.1-0-g8feb16b3)生成的计算机编程语言代码# # http://www.wxformbuilder.org/####请不要*编辑此文件!# # ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #导入导入wx。xrc # # # # # # # # # # # # # # # # # # # # # # # # # # # # Class my frame 1 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Frame):def _ _ init _ _(self,parent ):wx.Frame.__init__ ( self,parent,id=wx . ID_ANY,title=wx .EmptyString,pos=wx .DefaultPosition,size=wx .尺寸(500,300),样式=wx .DEFAULT _ FRAME _ STYLE wxTAB _ TRAVERSAL)自我SetSizeHints( wx .默认大小,wx .DefaultSize )bSizer2=wx .箱式筛分机(wx .垂直)self.m_label_num=wx .静态文本(self,wx .ID_ANY,u 请输入一个数字,wx .默认位置,wx .尺寸(500,-1),宽十.ALIGN _ CENTER _ HORIZONTAL)自我。m _ label _ numWrap( -1 )bSizer2 .Add( self.m_label_num,0,wx .ALL,5 )self.m_text_num=wx .TextCtrl( self,wx .ID_ANY,wx .空字符串,wx .默认位置,wx .大小(500,-1),0 )bSizer2 .Add( self.m_text_num,0,wx .ALL,5 )self.m_button_calc=wx .按钮(self,wx .ID_ANY,u 求该数字的二次幂,wx .默认位置,wx .大小(500,-1),0 )bSizer2 .Add( self.m_button_calc,0,wx .ALL,5 )self.m_text_result=wx .TextCtrl( self,wx .ID_ANY,wx .空字符串,wx .默认位置,wx .大小(500,-1),0 )bSizer2 .Add( self.m_text_result,0,wx .全部,自我SetSizer( bSizer2 )self .布局()自身。中心(wx .两者)#连接事件self.m_button_calc .绑定(wx .EVT _巴顿,自我。find _ square)def _ _ del _ _(self):传递#个虚拟事件处理程序,在你的派生类def find_square( self,event):事件中重写它们。跳过()完善寻找广场方法:

  def find_square(self,event): num=int(self.m_text_num .GetValue()) #获取输入的数字数值self.m_text_result .SetValue(str(num * num)) #输出该数字的平方值9、启动app,显示图像使用者界面界面

  if __name__==__main__: app=wx .App(False) frame=MyFrame1(无)框架.显示(真)#启动应用程序。主循环()

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: