iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python文本终端GUI框架怎么使用
  • 638
分享到

Python文本终端GUI框架怎么使用

2023-07-06 01:07:48 638人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python文本终端GUI框架怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python文本终端GUI框架怎么使用”吧!Curses首先出场的是 Curses[1]。C

本篇内容主要讲解“python文本终端GUI框架怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python文本终端GUI框架怎么使用”吧!

Curses

首先出场的是 Curses[1]。

Python文本终端GUI框架怎么使用

Curse

Curses 是一个能提供基于文本终端窗口功能的动态库,它可以:

  • 使用整个屏幕

  • 创建和管理一个窗口

  • 使用 8 种不同的彩色

  • 为程序提供鼠标支持

  • 使用键盘上的功能键

Curses 可以在任何遵循 ANSI/POSIX 标准的 Unix/linux 系统上运行。windows 上也可以运行,不过需要额外安装 windows-curses 库:

pip install windows-curses

上面图片,就是一哥们用 Curses 写的 俄罗斯方块游戏[2],是不感觉满满的回忆吧,可以拿去复活古董机了。

我们也来试试牛刀:

import cursesmyscreen = curses.initscr()myscreen.border(0)myscreen.addstr(12, 25, "Python curses in action!")myscreen.refresh()myscreen.getch()curses.endwin()
  • 需要注意 addstr 前两个参数是字符坐标,不是像素坐标

  • getch 会阻塞程序,直到等待键盘输入

  • curses.endwin() 作用是退出窗口

  • 如果需要持续监听用户的交互,需要写个循环,并对 getch() 获得的输入进行判断

代码运行效果如下:

Python文本终端GUI框架怎么使用

小试牛刀

Curses 非常轻巧,特别适合处理一下简单交互,代替复杂参数输入的程序,既优雅,有简单,而且 Curses 也是其他文字终端 UI 的基础。

Npyscreen

Npyscreen[3] 也是一个用了编写文本终端的 Python 组件库,是基于 Curses 构建的应用框架。

比起 Curses,Npyscreen 更接近 UI 式编程,通过组件的组合完成 UI 展示和交互,而且 Npyscreen 可以自适应屏幕变化。

Npyscreen 提供了多个控件,比如 表单(FORM)、单行文本输入框(TitleText)、日期控件(TitleDateCombo)、多行文本输入框(MultiLineEdit)、单选列表(TitleSelectOne)、进度条(TitleSlider)等多种控件。

提供强大的功能,满足快速开发程序的要求,无论是简单的单页程序还是复杂的多页应用。

来看一个小例子:

import npyscreenclass TestApp(npyscreen.NPSApp):def main(self):# These lines create the form and populate it with widgets.# A fairly complex screen in only 8 or so lines of code - a line for each control.F= npyscreen.Form(name = "Welcome to Npyscreen",)t= F.add(npyscreen.TitleText, name = "Text:",)fn = F.add(npyscreen.TitleFilename, name = "Filename:")fn2 = F.add(npyscreen.TitleFilenameCombo, name="Filename2:")dt = F.add(npyscreen.TitleDateCombo, name = "Date:")s= F.add(npyscreen.TitleSlider, out_of=12, name = "Slider")ml = F.add(npyscreen.MultiLineEdit, value = """try typing here!nMutiline text, press ^R to reformat.n""", max_height=5, rely=9)ms = F.add(npyscreen.TitleSelectOne, max_height=4, value = [1,], name="Pick One",values = ["Option1","Option2","Option3"], scroll_exit=True)ms2= F.add(npyscreen.TitleMultiSelect, max_height =-2, value = [1,], name="Pick Several",values = ["Option1","Option2","Option3"], scroll_exit=True)# This lets the user interact with the Form.F.edit()print(ms.get_selected_objects())if __name__ == "__main__":App = TestApp()App.run()
  • 引入 Npyscreen 模块,如果没有可以通过 pip 安装:pip install npyscreen

  • 继承 npyscreen.NPSApp 创建一个应用类 TestApp

  • 实现 main 方法,方法里创建一个 Form 表单对象,然后向表单对象上添加各种控件,并设置控件的一些属性

  • 调用表单对象的 Edit 方法,将操作权交给用户

  • 在运行时,实例化 TestAPP,然后调用 run 方法启动应用,应用即可进入等待用户交互的状态

上面代码运行的效果如下:

Python文本终端GUI框架怎么使用

Npyscreen

  • [Tab] / [Shift + Tab] 用于切换控件焦点

  • [回车] / [空格] 用于进入选择、设置、确认

  • 在选择框架中,方向键与 vim[4] 操作类似,即通过 hjkl 来控制

是不是感觉很神奇,用文本原来可以做这么多复杂的操作,之前对命令行中的进度显示的疑惑是否有所清晰了~

Urwid

如果说 Curses 和 Npysreen 是轻量级的文本终端 UI 框架,那么 Urwid[5] 绝对称得上是重量级选手。

Urwid 包含了众多开发文本 UI 的特性,例如:

  • 应用窗口自适应

  • 文本自动对齐

  • 轻松设置文本块

  • 强大的选择框控件

  • 可以和各种基于事件驱动的框架集成,比如和 Twisted[6], Glib[7], Tornado[8] 等等

  • 提供诸如编辑框、按钮、多(单)选框 等多种预制控件

  • 显示模式支持原生、Curses模式、LCD 显示屏 以及 网络显示器

  • 支持 UTF-8 以及 CJK 字符集(可以显示中文)

  • 支持多种颜色

看看效果:

Python文本终端GUI框架怎么使用

消息框

Python文本终端GUI框架怎么使用

多字体

Python文本终端GUI框架怎么使用

色彩

不知道你看了是什么感觉,我的感觉是:这也太卷了吧~

几乎可以做 GUI 下的所有事情!

更厉害的是,Urwid 完全是按照面向对象的思想打造的框架:

Python文本终端GUI框架怎么使用

Urwid 结构图

现在我们来小试一把,感受一下 Urwid 的强大:

import urwiddef show_or_exit(key):if key in ('q', 'Q'):raise urwid.ExitMainLoop()txt.set_text(repr(key))txt = urwid.Text(u"Hello World")fill = urwid.Filler(txt, 'middle')loop = urwid.MainLoop(fill, unhandled_input=show_or_exit)loop.run()
  • 先引入 urwid 模块

  • 定义了一个输入事件处理方法 show_or_exit

  • 处理方法中,当输入按键是 q 或者 Q 时,退出主循环,否则将按键名称显示出来

  • urwid.Text 是一个文本控件,接受一个字符串作为显示信息

  • urwid.Filler 类似于 panel,将 txt 控件填充在上面,位置设置在窗口中央

  • urwid.MainLoop 设置 Urwid 的主循环,将 fill 作为控件的绘制入口,参数 unhandled_input 接受一个按键事件处理方法,用的就是前面定义的 show_or_exit

  • loop.run() 启动 UI,并监控各种事件

运行这段代码,就可以看到命令行被设置为交互模式,按键时会在窗口中央显示出键名,如果按下 q 键,程序就会退出。

注意:

Urwid 只能在 Linux 操作系统中运行,Windows 上会因为缺失必要组件无法运行。

到此,相信大家对“Python文本终端GUI框架怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Python文本终端GUI框架怎么使用

本文链接: https://www.lsjlt.com/news/357218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python文本终端GUI框架怎么使用
    本篇内容主要讲解“Python文本终端GUI框架怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python文本终端GUI框架怎么使用”吧!Curses首先出场的是 Curses[1]。C...
    99+
    2023-07-06
  • Python 文本终端 GUI 框架,太酷了
    Curses首先出场的是 Curses[1]。CurseCurses 是一个能提供基于文本终端窗口功能的动态库,它可以: 使用整个屏幕 创建和管理一个窗口 使用 8 种不同的彩色 为程序提供鼠标支持 使用键盘上的功能键Curses 可以在任...
    99+
    2023-05-14
    代码 Python GUI
  • Python文本终端GUI框架,太酷了
    今天梳理几个常见的基于文本终端的 UI 框架,一睹为快! 1Curses 首先出场的是 Curses。 Curses 是一个能提供基于文本终端窗口功能的动态库,它可以: 使用整个屏幕 创建和管理一个窗口 使用 8 种不同的彩色 ...
    99+
    2023-10-22
    python 开发语言
  • 使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序
    介绍 随着机器学习和深度学习网站应用程序的快速增长,开发人员一直在寻找新的 Web 框架,以便更轻松地构建这些网站应用程序。 数据科学应用程序的普及程度已经上升,因此新的框架也在增加。开发人员创建了许多新的框架,这些框架被证明对构建这些...
    99+
    2023-08-31
    python 开发语言
  • Bootstrap前端框架怎么使用
    今天小编给大家分享一下Bootstrap前端框架怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Bootstrap 简...
    99+
    2023-06-27
  • Python Flask框架怎么使用
    这篇文章主要介绍“Python Flask框架怎么使用”,在日常操作中,相信很多人在Python Flask框架怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python ...
    99+
    2023-06-22
  • 怎么在Java中使用GUI实现文本文件
    本篇文章给大家分享的是有关怎么在Java中使用GUI实现文本文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、实验题目二、分析实验要求为:实现一个界面,界面中包含一个文本显...
    99+
    2023-06-15
  • vue前端框架Mint UI怎么使用
    Mint UI 是一个基于 Vue.js 的移动端组件库,使用 Mint UI 可以快速构建移动端应用的界面。以下是在 Vue 项目...
    99+
    2023-08-09
    vue
  • Asp.net core前端框架Blazor怎么使用
    今天小编给大家分享一下Asp.net core前端框架Blazor怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-07-02
  • Python之ORM框架怎么使用
    本文小编为大家详细介绍“Python之ORM框架怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python之ORM框架怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、Python语言中有哪些常...
    99+
    2023-07-02
  • Python中tornado框架怎么使用
    Tornado 是一个Python的web框架和异步网络库,可以用于构建高性能的web应用程序。下面是一个简单的使用Tornado框...
    99+
    2024-03-01
    Python tornado
  • Bootstrap前端框架怎么用
    小编给大家分享一下Bootstrap前端框架怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、Bootstrap 基本模板...
    99+
    2024-04-02
  • Python测试框架pytest怎么使用
    这篇文章主要介绍了Python测试框架pytest怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python测试框架pytest怎么使用文章都会有所收获,下面我们一起来看看吧。一、Pytest简介Pyt...
    99+
    2023-06-29
  • Python中的flask框架怎么使用
    使用Flask框架来构建Web应用程序需要以下几个步骤:1. 安装Flask框架:可以在命令行中使用pip命令进行安装,例如`pip...
    99+
    2023-08-12
    Python flask
  • 怎么使用Python构建GUI
    本篇内容介绍了“怎么使用Python构建GUI”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Streamlit我喜欢使用的包是 Stream...
    99+
    2023-07-06
  • Centos中怎么记录终端输出到文本文件
    本篇内容介绍了“Centos中怎么记录终端输出到文本文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一,把命令运行的结果保存到文件当中:用...
    99+
    2023-06-10
  • Python中的Scrapy框架怎么使用
    这篇文章主要讲解了“Python中的Scrapy框架怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中的Scrapy框架怎么使用”吧!安装Scrapy首先,您需要在您的计算...
    99+
    2023-07-05
  • SpringBootKnife4j在线API文档框架基本使用
    目录1.Knife4j在线API文档基本使用2.配置API文档信息1.Knife4j在线API文档基本使用 Knife4j是一款基于Swagger 2的在线API文档框架。 使用Kn...
    99+
    2022-12-08
    SpringBoot Knife4j在线API文档 SpringBoot Knife4j
  • python脚本框架webpy怎么安装
    本篇内容介绍了“python脚本框架webpy怎么安装”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一:安装pip install...
    99+
    2023-06-25
  • Python - 【FastAPI】框架配置搭建基本使用
    一. 前言 之前在面试的时候面试官有提到过这个框架,但是个人在之前的项目中没有用到过,只是有听过,并没有实际的应用,因此,个人自己研究了一下,这是个新型的框架,使用起来相对挺简单。FastAPI是一个...
    99+
    2023-09-11
    python fastapi 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作