python gui可视化开发工具,python怎么可视化开发

大家好,小编来为大家解答以下问题,python gui可视化操作界面制作,python可视化界面开发工具,今天让我们一起来看看吧!

大家好,小编来为大家解答以下问题,一个有趣的事情,一个有趣的事情,今天让我们一起来看看吧!

前言

近来使用Python开发了一些简单的辅助脚本,发现这真的是一门很有趣的语言;于是乎,便想着使用python来开发一些具有图形可视化界面(GUI)的程序,对于python来说,支持其开发GUI可视化程序的框架非常之多,简直让人眼花燎原,例如Tkinter,wxPython 、PyQt5、Gtk等等;在经过一番查问解惑之后,我最终选择的是wxPython,个人认为和wxPython配套的开发工具wxFormBuilder的图形可视化界面是很不错的,可以快速直观的帮助我们搭建起GUI界面。

一、wxPython简介

wxPython 是一个用于 wxWidgets (用C ++编写)的Python包装器,这是一个流行的跨平台GUI工具包火车头伪原创网址不会c语言也可以学python。由Robin Dunn和Harri Pasanen共同开发,wxPython被实现为一个Python扩展模块。

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

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

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

wxPython的官方网站也承载了Phoenix项目 - 一个用于Python3的wxPython的新实现。它侧重于提高速度,可维护性和可扩展性。该项目始于2012年,目前仍处于测试阶段。

二、wxPython Hello World

使用pip下载wxPython依赖库

pip installer wxPython

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

1、导入wx模块。
2、定义Application类的一个对象。
3、创建一个顶级窗口作为wx.Frame类的对象。标题和大小参数在构造函数中给出。
4、尽管可以在Frame对象中添加其他控件,但它们的布局不能管理。因此,将一个Panel对象放入框架中。
5、添加一个StaticText对象以在窗口内的所需位置显示’Hello World’。
6、通过show()方法激活框架窗口。
7、输入Application对象的主事件循环。

具体代码:

import wx

app = wx.App()
window = wx.Frame(None, title = "wxPython Frame", size = (300,200))
panel = wx.Panel(window)
label = wx.StaticText(panel, label = "Hello World", pos = (100,50))
window.Show(True)
app.MainLoop()

效果图

三、安装图形可视化生成工具

通过手动编写创建一个漂亮的GUI可能很乏味。一个可视化的GUI设计工具总能帮我们少走很多弯路,节省很多时间;wxFormBuilder就是这么一款优秀的可视化GUI设计工具,wxFormBuilder 是一款开源的跨平台WYSIWYG GUI构建器,可将wxWidget GUI设计转换为C ++,Python,PHP或XML格式。
目前整个项目已经移植到了github上面:项目传送门
请自行下载最新版的wxFormBuilder到本地,并进行安装包的安装。

下载
安装

四、使用wxFormBuild创建第一个图形可视化界面

这里我们使用wxFormBuild来创建一个简单的计算器:用户输入一个数字,然后输出这个数字的平方

1、创建项目,选择Python预言
选择Python
2、选择Frame控件
在这里插入图片描述
3、选择Layout方式
在这里插入图片描述
4、选择wxStaticText
wxStaticText

5、选择wxTextControl
wxTextControl
6、选择wxButton,
wxButton

7、选择wxStaticText
wxStaticText

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

按钮点击事件

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

# -*- coding: utf-8 -*-

###########################################################################
## Python code generated with wxFormBuilder (version 3.10.1-0-g8feb16b3)
## http://www.wxformbuilder.org/
##
## PLEASE DO *NOT* EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MyFrame1
###########################################################################

class MyFrame1 ( wx.Frame ):

	def __init__( self, parent ):
		wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )

		self.SetSizeHints( wx.DefaultSize, wx.DefaultSize )

		bSizer2 = wx.BoxSizer( wx.VERTICAL )

		self.m_label_num = wx.StaticText( self, wx.ID_ANY, u"请输入一个数字", wx.DefaultPosition, wx.Size( 500,-1 ), wx.ALIGN_CENTER_HORIZONTAL )
		self.m_label_num.Wrap( -1 )

		bSizer2.Add( self.m_label_num, 0, wx.ALL, 5 )

		self.m_text_num = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 500,-1 ), 0 )
		bSizer2.Add( self.m_text_num, 0, wx.ALL, 5 )

		self.m_button_calc = wx.Button( self, wx.ID_ANY, u"求该数字的二次幂", wx.DefaultPosition, wx.Size( 500,-1 ), 0 )
		bSizer2.Add( self.m_button_calc, 0, wx.ALL, 5 )

		self.m_text_result = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 500,-1 ), 0 )
		bSizer2.Add( self.m_text_result, 0, wx.ALL, 5 )


		self.SetSizer( bSizer2 )
		self.Layout()

		self.Centre( wx.BOTH )

		# Connect Events
		self.m_button_calc.Bind( wx.EVT_BUTTON, self.find_square )

	def __del__( self ):
		pass


	# Virtual event handlers, override them in your derived class
	def find_square( self, event ):
		event.Skip()

完善find_square方法:

    def find_square(self, event):
        num = int(self.m_text_num.GetValue()) # 获取输入的数字数值
        self.m_text_result.SetValue(str(num * num)) # 输出该数字的平方值

9、启动app,显示GUI界面

if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame1(None)
    frame.Show(True)
    # start the applications
    app.MainLoop()

计算器

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个VB6的IDE插件(Addin),使用VB6的IDE直接设计Python的界面。 Python和VB都是能让人快乐的编程语言,我使用了Python之后,很多自己使用的工具都使用Python开发或改写了,因为最终实现的Python代码实在太短了(相比VB),有时候Python一行代码就可以实现VB一个函数的功能。 Python就是这种让人越用越开心的语言。 不过说实在,使用Python开发GUI界面还是麻烦了一些了,自带的标准库Tkinter使用起来非常简单,不过对于习惯了VB拖放控件完成界面设计的同学来说,还是不够人性化。TK也有一个工具叫GUI Builder,不过它使用Layout布局,不够直观,而且界面简陋,用起来也不爽。 至于PyQt/wxPythonGUI库,尽管有可视化设计工具,但总感觉做一般的轻量级应用是杀鸡用牛刀,学习起来也比较复杂,而且不够环保,不够低碳,要带一个很大的库,需要目标机器上夜同样安装了PyQt/wxPython,做不了绿色软件。 所以最终的结果是我更喜欢Tkinter,用起来很简单,绿色环保,真正的跨平台,一个py文件到处运行(担心泄密就编译成pyc)。 很多人都认为TK的界面不够美观,不过导入Python自带的标准TTK主题库,界面非常Native,不输PyQt/wxPython。 此Addin默认启用TTK支持,也可选择关闭。 总而言之,轻量级GUI,TK+TTK足够。 使用此Addin,你可以不用写一句代码就可以生成一个完整可运行的PythonGUI界面,支持python 2.X和3.X。 安装方法:将压缩包解压到你希望的目录,然后执行Setup.exe完成注册插件过程,打开VB6就可以用了。 在VB窗体上设计完成界面后(你可以大胆的设置各控件的属性,Addin尽量将其翻译为tkinter的控件属性),点工具栏上的VisualTkinter(图标为一片橙红色羽毛),再点'生成代码'按钮,即可生成可运行的Python代码,可以拷贝至剪贴板或保存至文件。 一般情况下你可以不用再改变tkinter的控件属性,但是如果你熟悉tkinter,需要更多的控制,可以一一核对各属性,并且修改,再生成代码。 除了用来设计界面外,此ADDIN内置的各控件属性列表可以做为编程参考,比较完整,除了极少数我认为大多数人都不用的属性外,属性定义基本上是我从官方的tkinter文档直接翻译的。 如果还没有VB6,网上找一个VB6精简版即可(建议使用12M的版本,6M的版本也可以使用,不过工具栏图标无法显示,可以通过菜单执行此插件)。 经过网友测试,完美支持WinXP,Windows 7, Windows 8。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值