1 说明:

=====

1.1 Pyface库由大名鼎鼎的enthought出品。

1.2 介绍:

1.2.1 英文:

traits-capable windowing framework.

The pyface project contains a toolkit-independent GUI abstraction layer,

which is used to support the "visualization" features of the Traits package.

Thus, you can write code in terms of the Traits API (views, items, editors, etc.),

and let pyface and your selected toolkit,

and back-end take care of the details of displaying them.

1.2.2 中文:

具有Traits特质的窗口框架。

pyface项目包含一个独立于工具包的GUI抽象层,

用于支持Traits包的“可视化”功能。

因此,您可以根据Traits API(视图,项目,编辑器等)编写代码,

并让pyface和您选择的工具包,

和后端负责显示它们的细节。

2 准备:

=====

2.1 官网:

https://github.com/enthought/pyfacehttps://pypi.org/project/pyface/#教程https://docs.enthought.com/pyface/https://docs.enthought.com/pyface/api/pyface.html

2.2 依靠:

The following GUI backends are supported:选择一个即可

wxPython #本机未安装

PyQt #本机安装pyqt5

PySide #本机安装pyside2

2.3 安装:

pip install pyface

3 Hello world:

===========

3.1 效果图:

3.2 代码:注释中有4种方法,基本对建议窗口设置的熟悉和入门了。

'''#方法一from pyface.api import ApplicationWindow, GUI, HeadingTextclass MainWindow(ApplicationWindow):    #窗口标题名,默认窗口大小设置    title = "Hello World==你好世界!"    #默认    #定义    def _create_contents(self, parent):        #窗口标签显示text文本        self._label = HeadingText(parent, text="Hello World==你好世界!")        return self._label.controldef main():    gui = GUI()    window = MainWindow()    window.open()    gui.start_event_loop()if __name__ == "__main__":    main()''''''#方法二from pyface.api import ApplicationWindow, GUI, HeadingTextclass MainWindow(ApplicationWindow):    #窗口标题名    title = "Hello World==你好世界!"  #注意没有逗号    size = (700, 700)   #窗口大小设置,与size与title没有逗号隔开    #定义    def _create_contents(self, parent):        #窗口标签显示text文本        self._label = HeadingText(parent, text="Hello World==你好世界!")        return self._label.controlgui = GUI()window = MainWindow()window.open()gui.start_event_loop()''''''#方法三from pyface.api import ApplicationWindow, GUI, HeadingTextclass MainWindow(ApplicationWindow):    #窗口标题名    title = "Hello World==你好世界!"  #注意没有逗号    size = (700, 700)   #窗口大小设置,与size与title没有逗号隔开    #定义    def _create_contents(self, parent):        #窗口标签显示text文本        self._label = HeadingText(parent, text="Hello World==你好世界!")        return self._label.controlif __name__ == "__main__":    gui = GUI()    window = MainWindow()    window.open()    gui.start_event_loop()'''#方法四from pyface.api import ApplicationWindow, GUI, HeadingTextclass MainWindow(ApplicationWindow):    #窗口标题名    #title = "Hello World==你好世界!"  #注意没有逗号    #size = (700, 700)   #窗口大小设置,与size与title没有逗号隔开    #定义    def _create_contents(self, parent):        #窗口标签显示text文本        self._label = HeadingText(parent, text="Hello World==你好世界!")        return self._label.controlif __name__ == "__main__":    gui = GUI()    #window = MainWindow()    window = MainWindow(size = (700, 700) ,title = "Hello World==你好世界!" )    window.open()    gui.start_event_loop()

4 pythonshell:

==========

4.1 简易pythonshell:

4.1.1 代码:

from pyface.api import ApplicationWindow, GUI, PythonShellclass MainWindow(ApplicationWindow):    #窗口大小和标题名    size = (800, 800)    title = "Pythonshell"    def _create_contents(self, parent):        self._shell = PythonShell(parent)  #调用pythonsheel        return self._shell.controlif __name__ == "__main__":    gui = GUI()    window = MainWindow()    window.open()    gui.start_event_loop()

4.1.2 效果图:

4.2 高级pythonshell:

4.2.1 特点:带有功能菜单、图标、网址外联的。

4.2.2 文件结构展示:

4.2.3 代码省略,看看效果图:

4.2.4 注意上面还运行了一个外部脚本:matplotlib-tk-pie.py

5 progress:

========

5.1 带进度条的主窗口。

5.2 代码:

import timefrom pyface.api import GUI, ApplicationWindow, ProgressDialogfrom pyface.action.api import Action, MenuManager, MenuBarManagerdef task_func(t):    #展示进度条窗口    progress = ProgressDialog(        ,        message="counting to %d" % t,        max=t,        show_time=True,  #显示展示时间        can_cancel=True,  #显示取消按钮    )    progress.open()    for i in range(0, t + 1):        time.sleep(1)        #print(i)        (cont, skip) = progress.update(i)        if not cont or skip:            break    progress.update(t)#def _main():  #注意带下划线的命名,防止与程序的main重复def num_main(): #这种就不会    task_func(10)'''#主窗口,暂时注释掉class MainWindow(ApplicationWindow):    def __init__(self, **traits):        super(MainWindow, self).__init__(**traits)         #以上是主窗口的默认设置        # Add a menu bar.        self.menu_bar_manager = MenuBarManager(            MenuManager(                Action(name="E&xit", on_perform=self.close),                #Action(name="DoIt", on_perform=_main), #这种命名容易混淆,还好带有下划线                Action(name="DoIt", on_perform=num_main),                name="&File",            )        )        return'''if __name__ == "__main__":    gui = GUI()    #window = MainWindow()  #主窗口    #window.open()    #_main()  #注意这种命名    num_main()  #这种就不会,调用进度条窗口    gui.start_event_loop()

5.3 操作和效果图:

6 弹出框学习:

==========

6.1 代码:

#一行模块带出,方法一,带括号from pyface.api import (    ApplicationWindow,    GUI,    YES,    choose_one,    confirm,    error,    information,    warning,)#一行模块导出,方法二,不带括号from pyface.action.api import Action, MenuBarManager, MenuManager#定义主窗口class MainWindow(ApplicationWindow):    def __init__(self, **traits):        super(MainWindow, self).__init__(**traits)        #默认主窗口设置,背景颜色为蓝色        # 定义菜单menu_bar        self.menu_bar_manager = MenuBarManager(            MenuManager(                Action(name="E&xit", on_perform=self._on_exit), name="&File"            )        )        return    def _on_exit(self):        parent = self.control        #调出弹出窗口        choose_one(parent, "Make a choice", ["one", "two", "three"])  #选择框        #print(choose_one(parent, "Make a choice", ["one", "two", "three"]))        information(parent, "Going...")  #信息弹出框/窗口        warning(parent, "Going......")   #警告框        error(parent, "Gone!")           #错误框        if confirm(parent, "Should I exit?") == YES:  #确认框            self.close()if __name__ == "__main__":    gui = GUI()    window = MainWindow(size=(800,800),)    window.open()    gui.start_event_loop()

6.2 效果图:

7 本机默认pyface的窗口GUI是pyqt5

===自己整理并分享出来===

喜欢的人,请点赞、转发、关注、评论和收藏。

python 且_Pyface库:一个基于pyqt、pyside、wx且简化的python的GUI相关推荐

  1. python+tensorflow+captcha库:基于TF快速破解验证码

    python+tensorflow+captcha库:基于TF快速破解验证码 点击打开链接:文章摘自 https://blog.csdn.net/tengxing007/article/details ...

  2. python自动化工具_AWD_Hunter, 一个基于Python2.7的AWD自动化工具

    AWD_Hunter, 一个基于Python2.7的AWD自动化工具 免得比赛时手忙脚乱,时间有限,后续或加入自动submit flag什么的 安装依赖库 sudo python -m pip ins ...

  3. python人脸识别库_基于Python的face_recognition库实现人脸识别

    Python Python开发 Python语言 基于Python的face_recognition库实现人脸识别 一.face_recognition库简介 face_recognition是Pyt ...

  4. python的第三方库是干什么用的-20个必不可少的Python库也是基本的第三方库

    传智播客博学谷 微信号:boxuegu- get最新最全的IT技能 免费领取各种视频资料 今天将介绍20个常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们是: Requests.Ke ...

  5. python中requests库的用途-数据爬虫(三):python中requests库使用方法详解

    有些网站访问时必须带有浏览器等信息,如果不传入headers就会报错,如下 使用 Requests 模块,上传文件也是如此简单的,文件的类型会自动进行处理: 因为12306有一个错误证书,我们那它的网 ...

  6. python相对路径库_如何最简单、通俗地理解Python的搜索路径、相对路径、绝对路径?...

    目录: 一.笔记 二.我的自学路线 三.笔记目录 一.笔记 1) 搜索路径 ① 能导入模块的话,表示搜索路径中有这个模块文件. ② 当你导入一个模块,Python解析器对模块位置的搜索顺序是:1. 当 ...

  7. python那么多库怎么学_为什么大家都在学习python?原因在这里

    原标题:为什么大家都在学习python?原因在这里 为什么大家都在学习python? python真的是天生丽质难自弃呀,难怪大家都在学python,这就跟所有姑娘都在追求高富帅,所有男生都在渴望白富 ...

  8. python 分析人物关系_基于共现发现人物关系的python实现

    基于共现发现人物关系的python实现 1.共现关系 在文献计量学中,关键词的共词方法常用来确定该文献集所代表学科中各主题之间的关系.而在这里,我们需要通过分析一篇小说或剧本,来分析剧中各个角色之间的 ...

  9. 高中python课程实施方法_基于学科核心素养的高中信息技术Python教学探析

    龙源期刊网 http://www.qikan.com.cn 基于学科核心素养的高中信息技术 Python 教学探析 作者:张明华 来源:<新课程 · 上旬> 2020 年第 07 期 摘 ...

最新文章

  1. spark rdd saveAsTextFile保存为文件
  2. 强烈推荐Bulletproof Ajax 中文版
  3. ssh客户端_Mobaxterm-不止是一款好用的SSH客户端软件
  4. ucla研究生计算机科学,详解UCLA研究生录取数据,达到什么标准才能稳被录?
  5. 四大对象是什么时候创建的?
  6. HDU - 3338 Kakuro Extension(最大流+思维建边)
  7. slope one matlab代码,经典推荐算法之 Slope one
  8. Android类参考---Fragment(五)
  9. Javascript获取For循环所用时间
  10. Linux命令参数详细解析 mv
  11. spark视频-spark机器学习
  12. 【Java】Java-ShutDownHook-优雅关闭系统资源
  13. 5阶无向完全图_离散数学图论答案
  14. latex 中对同一脚注进行引用
  15. BIGEMAP添加在线地图地图数据源
  16. MD5 32位加密
  17. 计算机科学方向的会议或期刊,计算机顶会和顶刊_计算机顶会_顶会
  18. 【tomcat运行异常】Error running ‘*** [org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:run]‘
  19. centos 6.7 mysql密码忘记_CentOS 7安装MySQL5.7以及忘记root密码怎么办
  20. 贝叶斯优化: 一种更好的超参数调优方式

热门文章

  1. springboot项目集成Flowable资料汇总
  2. 利用 VBA 和 HTML自制兼容 WPS及 EXCEL(32位/64位)的颜色选择器
  3. android studio打包纯H5项目(集成5+SDK)
  4. Java native方法availableProcessors()获取处理器数量的底层C++实现
  5. python 爬虫代理_python 爬虫 使用代理 的问题
  6. java项目类上有黑色的点_图像处理 – 如何使用javacv / opencv识别黑色多边形上的点?...
  7. 你的目的是什么是谁指使你_电视剧《谁说我结不了婚》第25-27集剧情:魏书帮程璐搞定投资人...
  8. php程序里的configini_程序员手册 修改php.ini的几种方法
  9. mysql 主键 最佳实践_设计套路:Mysql主键的选取
  10. python队列精灵对战_python队列Queue