前往小程序,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库如何自动实现
使用命令行程序有很多充满乐趣的功能,例如“提示工具包”,“命令行界面创建工具包“,“Pygments”和“模糊搜索”,我将介绍如何在几个 Python 库的帮助下实现这些功能。 在本文结尾,读者应该很好地了解如何使用 Prompt Toolkit,Click(命令行界面创建工具包),Pygments 和 Fuzzy Finder 来实现一个易于使用的 REPL(交互式解释器)。 我计划用少于 20 行的 Python 代码中实现这一点。 让我们开始,GO! Python 提示工具包 我喜欢将这个库看
小小科
2018/05/02
1.7K0
你还在手写命令行功能?看这四个Python库如何自动实现
哪些软件是python编写出来的_用Python编程需要什么软件?
用Python编程需要什么软件?Python编程是一门适合新手入门的编程语言,现在有不少程序员业余时间学习Python编程语言,学习Python找到好工具会大大提高学习的效率。好用的Python编程软件能将工作效率多倍速提升。
全栈程序员站长
2022/08/31
1.2K0
SyntaxError: invalid syntax 完美解决方法 ️
大家好,我是默语,一名全栈开发、运维和人工智能技术的爱好者和实践者。在Python编程中,SyntaxError: invalid syntax 是新手和经验丰富的开发者都可能会遇到的一个常见错误。它通常在代码存在语法错误时出现,直接阻止代码的执行。本文将详细分析这一错误的常见成因,并提供多种解决方法,帮助你快速定位并修复这些语法问题,从而提升编码效率。
默 语
2024/11/22
1.8K0
python 命令行界面_4个Python库,用于构建出色的命令行用户界面
这是我的两部分系列文章的第二部分,这是有关具有出色的命令行UI的终端应用程序的。 在第一篇文章中 ,我讨论了使命令行应用程序变得纯粹使用乐趣的功能。 在第二部分中,我将研究如何借助一些库在Python中实现这些功能。 在本文的最后,读者应该对如何使用Prompt Toolkit , Click (命令行界面创建工具包), Pygments和Fuzzy Finder有了一个很好的理解,以实现易于使用的REPL 。
用户7886150
2020/12/29
1.3K0
手把手教你打造高效的 Kubernetes 命令行终端
Kubernetes 作为云原生时代的操作系统,熟悉和使用它是每名用户的必备技能。本文将介绍一些提高操作 Kubernetes 效率的技巧以及如何打造一个高效的 Kubernetes 命令行终端的方法。
sunsky
2020/08/20
1.8K0
手把手教你打造高效的 Kubernetes 命令行终端
Python入门(3)
并且在电脑Windows的开始菜单里,已经看到了安装好的Python软件,马上我们就可以派上用场了。
高一峰
2020/09/22
5780
Python入门(3)
5款Python程序员高频使用开发工具推荐
本来想推荐 fish 或者 zsh,但其实这两个我也主要是贪图自动补全这个特性。最近在用的这个 Upterm 其实很简单好用,它是一个全平台的终端,可以说是终端里的 IDE,有着强大的自动补全功能。之前的名字叫 BlackWindow,有人跟他说这个名字不利于社区推广,改名叫 Upterm 之后现在已经17000+ Star了。
python学习教程
2019/10/10
6690
5款Python程序员高频使用开发工具推荐
使用交互式 shell 来增强你的 Python
Python 编程语言已经成为 IT 中使用的最流行的语言之一。成功的一个原因是它可以用来解决各种问题。从网站开发到数据科学、机器学习到任务自动化,Python 生态系统有丰富的框架和库。本文将介绍 Fedora 软件包集合中提供的一些有用的 Python shell 来简化开发。
用户8639654
2021/10/15
1.3K0
python与pycharm区别_pycharm与anaconda
ipython和pycharm的区别:pycharm是一种python IDE,包含使用python语言开发时提高其效率的工具;ipython是一个python的交互式shell,内置了很多有用的功能和函数。
全栈程序员站长
2022/09/27
2870
nodejs基础-
一个开发平台,像java开发平台一样,使用编程语言,javascript,基于chrome V8引擎构建
eadela
2019/09/29
2.6K0
nodejs基础-
50个关于IPython的使用技巧,赶紧收藏起来!
IPython中的‘I’即代表交互的意思,所以IPython提供了丰富的工具,能更好地与python进行交互。 大家经常遇到的魔法命令,就是IPython的众多功能之一。 本文梳理IPython的50个用法,供Python爱好者参考。
我被狗咬了
2020/02/18
2.6K0
实验一 熟悉Python的集成开发环境
Python的创始人为荷兰的Guido。1989年,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。Python具有几大显著的特点:简单易学、开源、高级语言、可移植性、解释性、面向对象、可扩展、丰富的库以及规范的代码。Python的应用领域主要包括:Web应用开发、操作系统管理、服务器运维的自动化脚本、科学计算、桌面软件、服务器软件(网络软件)、游戏以及构思实现,产品早期原型和迭代等。
背雷管的小青年
2020/06/07
2.8K1
专为 90 后定制的 Shell,我倒要看看有啥不一样!
当提到命令行界面(CLI)时, 我们通常会想到一种强大而高效的方式来与计算机进行交互。在众多的 Shell 中最常用的就数 Bash 和 zsh 了, 除此之外还有一颗闪耀的明星 Fish Shell, 它以其现代化的设计和强大的特性而备受赞誉, 成为许多开发人员和系统管理员钟爱的选择, 正如官网宣传的 Finally, a command line shell for the 90s, 翻译过来就是 Fish Shell 是一个为 90 后准备的 Shell, 它主要特性如下:
民工哥
2023/11/02
3750
25 个 Linux 下最炫酷又强大的命令行神器,你用过其中哪几个呢?
众所周知,我们在 Linux 下大多数时候是使用命令行来处理任务的。这样不但操作起来效率比较高,而且界面也比较炫酷。下面,我们就给大家推荐一些不但炫酷又好用的 Linux 命令行神器。
iMike
2019/09/10
2.8K1
25 个 Linux 下最炫酷又强大的命令行神器,你用过其中哪几个呢?
数据科学、机器学习IDE概览
IDE 提供的丰富特性对软件开发极为有用,大大提高了程序员的生活质量。这一点同样适用于数据科学家。然而,因为数据科学家除了可以选择传统的 IDE,还可以选择 Jupyter notebook 这样在浏览器中运行的新工具。因此,数据科学家——特别是刚入门数据科学的新手——可能会困惑该使用哪个开发环境。
崔庆才
2019/09/04
3.7K0
数据科学、机器学习IDE概览
python笔记:#002#第一个python程序
第一个 Python 程序 目标 第一个 HelloPython 程序 Python 2.x 与 3​​.x 版本简介 执行 Python 程序的三种方式 解释器 —— python / python3 交互式 —— ipython 集成开发环境 —— PyCharm 01. 第一个 HelloPython 程序 1.1 Python 源程序的基本概念 Python 源程序就是一个特殊格式的文本文件,可以使用任意文本编辑软件做 Python 的开发 Python 程序的 文件扩展名 通常都是 .py
_gongluck
2018/03/08
1.2K0
python笔记:#002#第一个python程序
【Linux】15 个『牛逼』的Linux工具,提高效率的同时增加乐趣
3、mycli:mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令。
昱良
2019/09/02
1K0
【Linux】15 个『牛逼』的Linux工具,提高效率的同时增加乐趣
「python安装」Windows上安装和创建python开发环境
IPython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。
python学习教程
2019/11/24
1.8K0
盘点 2017年Python 领域值得关注的 5 个库、工具和开发者
今年 Python 增长迅猛,也有了不少新东西,在这里推荐 5 个值得在 2018 年继续关注的库、工具和开发者,看看有没有你没听过的? 值得关注的 5 个 Python 库 #Web 领域:Sanic 这个库的名字和之前一个很火的梗有关,有人在 youtube 上画 Sonic 那个蓝色小人,结果一本正经的画出了下面这货,给它起名叫 Sanic,还配了一句话是 Gotta go faster. 这个库和 Flask 类似,但是比它快很多,速度能在测试中达到每秒 36000 次请求。在2017年的
企鹅号小编
2018/01/10
8620
盘点 2017年Python 领域值得关注的 5 个库、工具和开发者
Emacs Verilog mode 简单使用指南
Emacs,作为一款历史悠久且高度可定制的文本编辑器,深受程序员喜爱。对于硬件描述语言Verilog的开发者而言,Emacs的Verilog模式(Verilog mode)提供了丰富的语法高亮、代码补全、自动缩进等特性,极大地提升了编写和阅读Verilog代码的体验。本指南旨在深入浅出地介绍Emacs Verilog mode的基本使用方法、常见问题及解决方案,并通过实用示例帮助初学者快速上手。
Jimaks
2024/06/18
4790
Emacs Verilog mode 简单使用指南
推荐阅读
相关推荐
你还在手写命令行功能?看这四个Python库如何自动实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验