Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python 的 GUI 开发工具 原

Python 的 GUI 开发工具 原

作者头像
晓歌
发布于 2018-08-15 07:03:55
发布于 2018-08-15 07:03:55
7.3K00
代码可运行
举报
文章被收录于专栏:破晓之歌破晓之歌
运行总次数:0
代码可运行

一、flexx

github:https://github.com/flexxui/flexx

体验demo:http://demo.flexx.live/

一共四种功能,ui比较简单

聊天室,画画,走势图,估计版本还有很大升级空间,没事

Flexx 详细介绍

Flexx 是一个纯 Python 工具包,用来创建图形化界面应用程序。其使用 Web 技术进行界面的渲染。你可以用 Flexx 来创建桌面应用,同时也可以导出一个应用到独立的 HTML 文档。因为使用纯 Python 开发,所以 Flexx 是跨平台的。只需要有 Python 和浏览器就可以运行。如果是使用桌面模式运行,推荐使用 Firefox 。

Flexx 使用模块化设计,包含一些子系统:

  • ui - UI 部件
  • app - 事件循环和服务器
  • react - reactive 编程
  • pyscript - Python to JavaScript transpiler
  • webruntime - to launch a runtime

估计还是需要一些例子的讲解才能会灵活使用

二、htmlpy

官方文档(英文):https://pypi.org/project/htmlPy/

没写到python3.5是否支持

htmlPy 是对 PySide 的 QtWebKit 库的 Python 封装。可以用 HTML5 和 CSS3 来开发漂亮的图形界面应用程序。基于 Qt 构建,具备高度可定制以及跨平台支持。兼容 Python2 和 Python3.可用于任何 Python 库和环境,如 django, flask, scipy, virtualenv 等。也可以使用前端框架,如 bootstrap, jQuery, jQuery UI 等。

一个 htmlPy 基本应用包含如下三个组件:

后端:back_end.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import htmlPy


class BackEnd(htmlPy.Object):

    def __init__(self, app):
        super(BackEnd, self).__init__()
        self.app = app

    @htmlPy.Slot()
    def say_hello_world(self):
        self.app.html = u"Hello, world"

GUI: main.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import htmlPy
from back_end import BackEnd

app = htmlPy.AppGUI(
    title=u"Sample application")
app.maximized = True
app.template_path = "."
app.bind(BackEnd(app))

app.template = ("index.html", {})

if __name__ == "__main__":
    app.start()

前端:index.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<html>
  <body>
    <a
    href="BackEnd.say_hello_world"
    data-bind="true">
      Click to say "Hello, world"
    </a>
  </body>
</html>

三、python包自带的GUI

Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下:

  • Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
  • wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。
  • Jython:Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。

1.Tkinter

(网上查了一下评论,说是东西都能写出来,但是很累,而且最后一次更新在2009年,虽然是标准库,但是真的很丑,所以不推荐)

Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。

由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。

注意:Python3.x 版本使用的库名为 tkinter,即首写字母 T 为小写。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tkinter

创建一个GUI程序

  • 1、导入 Tkinter 模块
  • 2、创建控件
  • 3、指定这个控件的 master, 即这个控件属于哪一个
  • 4、告诉 GM(geometry manager) 有一个控件产生了。

实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import Tkinter
top = Tkinter.Tk()
# 进入消息循环
top.mainloop()

以上代码执行结果如下图:

实例2:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/python
# -*- coding: UTF-8 -*-

from Tkinter import *           # 导入 Tkinter 库
root = Tk()                     # 创建窗口对象的背景色
                                # 创建两个列表
li     = ['C','python','php','html','SQL','java']
movie  = ['CSS','jQuery','Bootstrap']
listb  = Listbox(root)          #  创建两个列表组件
listb2 = Listbox(root)
for item in li:                 # 第一个小部件插入数据
    listb.insert(0,item)

for item in movie:              # 第二个小部件插入数据
    listb2.insert(0,item)

listb.pack()                    # 将小部件放置到主窗口中
listb2.pack()
root.mainloop()                 # 进入消息循环

以上代码执行结果如下图:

2.wxPython

官方:https://www.wxpython.org/

安装:http://www.rpmfind.net/linux/rpm2html/search.php?query=wxPython

教程:http://blog.topspeedsnail.com/archives/1190

三、PyQt

PyQt实现了一个Python模块集。它有超过300类,将近6000个函数和方法。它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac。 PyQt采用双许可证,开发人员可以选择GPL和商业许可。在此之前,GPL的版本只能用在Unix上,从PyQt的版本4开始,GPL许可证可用于所有支持的平台。

官网:https://riverbankcomputing.com/software/pyqt/intro

PyQt教程:http://code.py40.com/category/asc6

四、kivy

kivy是一个开源的Python库,目的是快速开发GUI用户界面,特别是多点触摸应用程序。Kivy和python一样具有出色的跨平台特性,使用Kivy编写的程序可以在Windows,Linux,和mac OSX系统之间无缝切换运行,而且具有本地显示效果,特别对触摸屏应用的支持较好,在非触摸屏上也可以配合鼠标模拟触摸效果。Kivy甚至可以运行在android和IOS设备上,具有极强的跨平台能力。

官网:https://kivy.org/

中文文档1.9.1:https://www.kancloud.cn/gthank/kivydoc/127792

github:https://github.com/kivy/kivy-website/

教程1:https://www.cnblogs.com/HacTF/p/8142364.html

教程2:https://www.colabug.com/2116514.html

官网

1、安装kivy

在ubuntu 14.04下面安装kivy非常简单,基本上一条命令就可以解决,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apt-get install python-kivy

2、kivy官方网站

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
www.kivy.org

3、第一个demo代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello World')

TestApp().run()

这个例子比较简单。但是,我觉得不足以说明kivy的本质,充其量表明kivy可以生成一个app,app里面有一个按钮而已。

4、增强版demo

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from kivy.app import App
from kivy.lang import Builder

kv = Builder.load_string('''
Button:
    text: "I was created by kv codes"
''')

class TestApp(App):
    def build(self):
        return kv

TestApp().run()

要说代表性,我觉得这个代码最能体现kivy的与众不同。因为kv数据可以用来描述app,而python代码可以用来运行app逻辑,两者配合巧妙,用来做app实在是太适合了。如果想让自己的代码运行在android上,只需要kivy+qpython打包就可以了。

5、更多示例代码

关于kivy更多的代码,大家可以用ubuntu下载,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install python-kivy-examples

五、PyGTK

官网:https://pypi.org/project/PyGTK/

PyGTK+Glade可以很方便设计程序,图形界面用XML保存,然后动态解析

中文教程:https://blog.csdn.net/qq_21398167/article/details/46349061

六、PyGObject

官网:https://pypi.org/project/PyGTK/

参考文档:

1.flexx:https://www.oschina.net/p/flexx

2.htmlpy:https://www.oschina.net/p/htmlpy

3.Tkinter:http://www.runoob.com/python/python-gui-tkinter.html

4.kivy:https://www.colabug.com/2116514.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
十个顶级Python 图形界面(GUI)框架供你选择
由于Python越来越受欢迎,并得到广泛采用,它将成为2020年流行起来的编程语言。在牢固掌握Python编程基础之后,初学者面临的下一个挑战是构建用户界面。幸运的是,有很多Python框架专门帮助开发人员构建令人惊叹但高度直观的用户界面,以适应程序应用。
HuangWeiAI
2021/07/07
19.1K0
十个顶级Python 图形界面(GUI)框架供你选择
七个Python必备的GUI库,这次一定要学会!
GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。
小F
2021/04/28
4.7K0
七个Python必备的GUI库,这次一定要学会!
Python 开发者必知的 11 个 Python GUI 库
Python是一种高级编程语言,它用于通用编程,由Guido van Rossum 在1991年首次发布。Python 的设计着重于代码的可读性。
开发者技术前线
2020/11/23
1.6K0
Python 开发者必知的 11 个 Python GUI 库
基于Python+uiautomation的windowsGUI自动化测试概述
一直使用Python做自动化测试,近期遇到了要对桌面端软件即windowsGUI进行自动化测试。Python的GUI自动化测试工具有很多,但是都有不同的侧重点。本次会详细说明为啥选择uiautomation来做测试。
虫无涯
2023/02/02
4K0
Python开发者必知的13个Python GUI库
Python是一种高级编程语言,它用于通用编程,由Guido van Rossum 在1991年首次发布。Python 的设计着重于代码的可读性。
IT派
2018/07/30
2.7K0
Python开发者必知的13个Python GUI库
原创 | 整理了32个Python图形化界面库
今天给大家分享了一个我觉得很有趣的东西:图形用户界面(Graphical User Interface,简称 GUI)。
程序员晚枫
2022/05/14
7.6K0
原创 | 整理了32个Python图形化界面库
七个Python必备的GUI库
GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。
超级小可爱
2023/02/20
4.5K0
在这个什么都看脸的时代,如何用 GUI 提高 python 程序的颜值?
0、前言 有不少初学者会问,Python 写的程序看起来好丑啊,只能在那个黑黑的框里运行吗?隔壁家的 JS 好像挺好看的,还能有酷炫效果呢…… 其实呢,术业有专攻,Python 擅长的领域在后台服务器、数据处理、科学计算等方面,以及作为一种工具,搞定各种可以自动化的事情。做界面并不是它的优势项目。但即便如此,本可以靠实力的 Python,偏偏也能靠脸走出一片天。 从诞生伊始,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编程领域当中
Crossin先生
2018/04/17
4.6K0
在这个什么都看脸的时代,如何用 GUI 提高 python 程序的颜值?
Python 常用的GUI框架都有哪些
Graphical User Interface,简称 GUI,又称图形化用户接口,所谓的GUI编程,指的是用户不需要输入代码指令,只通过图形界面的交互就可以操作软件功能。
吾非同
2020/12/07
3K0
Python 常用的GUI框架都有哪些
13个Python GUI库
Python是一门高级编程语言。它用于通用编程。Python语言由Guido van Rossum创建,并于1991年首次发布。Python的设计哲学着重于代码的可读性。因此空白在Python中具有重要的意义。
小小科
2018/07/31
2.1K0
13个Python GUI库
用Python作图形界面GUI,这几个库可以满足你所有要求!【建议收藏】
用Python开发图形界面有两种方式 一种是用Django或Flash等框架开发网页 另一种是开发桌面应用程序,比如下面这个国际象棋游戏 本文主要讨论图形界面库GUI,最后会告诉你如何选择。 6个最常用的Python图形库 Python有非常多的图形界面库: 这里我们只讨论最常用的6个: PyQt5 经常排在第一位Python图形界面库,基于著名的Qt跨平台图形界面库。自带大量空间,有QtGUI和QtDesigner,可以帮你方便的设计界面。 不过这个是要License的,适合企业级用户或者土豪。
用户8949263
2022/04/08
5.6K0
用Python作图形界面GUI,这几个库可以满足你所有要求!【建议收藏】
Python图形化工具指南
在当今软件开发的世界中,图形化界面是用户体验的重要组成部分。Python作为一种功能强大且易于学习的编程语言,在图形化界面开发方面有许多优秀的库供开发者选择。本文将对几个常用的Python图形化库进行比较,以帮助开发者选择适合其项目的最佳库。
一键难忘
2024/07/22
6490
Python 图形界面框架 PyQt5 使用指南!
使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。
快学Python
2021/12/13
8.9K0
Python 图形界面框架 PyQt5 使用指南!
教你用Python写界面
作为Pyhon开发者,你迟早都会碰到图形用户界面(GUI)应用开发任务,这时候我们就需要一些界面库来帮助我们快速搭建界面,python的界面库很多,我认识的并不多,这里只列出几种我认识的
py3study
2020/01/07
4.6K0
教你用Python写界面
python编程之GUI的选择
前言:本文来自于网络位置http://www.2cto.com/kf/201009/74917.html。尽管内容可能有些老,但是没有关系,对于想深入Python开发的工作者,在选择GUI开发包,乃至可视化IDE方面都还有相当的借鉴意义。
py3study
2020/01/10
1.6K0
Python GUI编程 | 10分钟轻松学会Tkinter
图形用户界面(GUI)是为用户交互提供灵活性的界面,很多小伙伴都希望把自己的Python小程序都加上一个可视化界面。即美观,又有交互性。常见的Python必备的GUI库有:Tkinter、PyQt5、Kivy、wxPython、PySimpleGUI等等。后续这些有用有趣的模块在快学Python都会陆续介绍的。
快学Python
2021/08/09
10.9K1
13个Python GUI库
Python是一门高级编程语言。它用于通用编程。Python语言由Guido van Rossum创建,并于1991年首次发布。Python的设计哲学着重于代码的可读性。因此空白在Python中具有重要的意义。
全栈程序员站长
2022/09/13
1.7K0
13个Python GUI库
python常用的几种GUI解析
在Python中,开始使用GUI编程的步骤并不复杂,但是它们要求用户开始做出一些选择。作为通用编程语言,每个常见操作系统都有可用的解释器,所以创建图形用户界面对于Python来说并不是难事。程序员可以有很多的选择,真正困难的是如何为用户创建一个简单的方式来与程序互动。 在python中有几种常用的GUI,我们来解析下。 1、Tkinter
孙杰
2019/10/29
1.4K0
python常用的几种GUI解析
PYTHON开源项目及示例代码
cStringIO 是 C 语言实现的,提供高性能;而 StringIO 是 Python 实现的,提供 Unicode 兼容性。
py3study
2020/01/06
3.4K0
笔记 | Python环境下的GUI编程常用包
Python的使用频率和范围越来越大,在一些开发工作中由于需要可视化的图形界面,常常需要进行图形用户界面(Graphic User Interface, GUI)开发。例如,目前最火热的大模型应用,常常是以一个网页界面进行操作和展示,从而免去了控制台或接口操作的复杂性。因此本文总结记录了我接触了解过的GUI开发相关工具和依赖库。
Ranlychan
2024/07/20
1690
笔记 | Python环境下的GUI编程常用包
相关推荐
十个顶级Python 图形界面(GUI)框架供你选择
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验