关于问题python 可以做界面吗,怎么做?一共有 2 位热心网友为你解答:
【1】、来自网友【全栈集结号】的最佳回答:
Python 的 GUI 库非常多,能找到 20 多种,我这里就给你说几种常用的。
kivy
Kivy 是一个开源的 Python 框架,用于快速开发应用,实现各种当前流行的用户界面,比如多点触摸等等。
Kivy 可以运行于 Windows, Linux, macOS, Android, iOS 等当前绝大部分主流桌面/移动端操作系统。
Kivy 基于 Python,界面文件和程序文件相互分离的设计思路,设计简洁优雅,语法易学,适合新人入门。
PyQt
这是非常经典的 Python gui 库了,使用的范围也非常广,它是跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4 和 Qt v5,这是老牌的界面设计库了。
PySide
PySide 和 PyQt 的区别,前者是 Qt 公司的产品,后者是第三方公司的产品,二者用法基本相同,不过在使用协议上却有很大差别,PySide 可以在 LGPL 协议下使用,PyQt 则在 GPL 协议下使用
Tkinter
Tkinter 是 Python GUI 的一个内置的 GUI 标准库,其语法简单易学,适合初学者练手。
WxPython
wxPython 是一个用 C ++编写的适用于 Python 的跨平台 GUI 工具包,它让 Python 程序员们能够简单、轻松地创建功能强大的图形用户界面的程序。它目前支持的平台包括 Microsoft Windows、Mac OS X 和 macOS,以及 Linux 或其他具有 GTK2 或 GTK3 库的类 unix 系统。
PySimpleGUI
这个库胜在简单,使用方便,能快速出简单的工具,它是对 tkinter,Qt,WxPython 和 Remi 的封装,通过实现大部分“样板代码”比直接使用底层框架编写更简单、更短。看名字就知道,易于使用,但是美观方面不是特别好。
pywebview
这个库也是我刚接触到的,结合了 Python 和 HTML,美观性一下就提起来了,对于会前端的人很友好,它是一个包含有 WebView 组件的轻量级跨平台应用容器,可以在原生 GUI 的窗口中显示 HTML 内容。脱离于浏览器在桌面应用程序中应用 Web 技术的强大功能,隐藏了 GUI 基于浏览器的事实。您可以在 pywebview 中使用像 Flask 或 Bottle 这样的轻量级 Web 框架,也可以单独使用 Python 和 DOM 之间的双向桥接。
EasyGUI
EasyGUI 是一个用 Python 进行的非常简单、非常容易的 GUI 编程模块。它不同于其他 GUI 库,因为 EasyGUI 不是事件驱动的,相反,它所有的 GUI 交互都是通过简单的函数调用调用的,不要求程序员了解任何关于 tkinter、框架、小部件、回调或 lambda 的信息。
flet
这就是我要重点推荐的库,这是今年初刚发布的,它是一个框架,允许你用喜欢的语言构建交互式多用户 web、桌面、移动端应用程序,虽然目前只支持 Python 开发,但是后面计划支持多语言,基于 flutter,它会有非常好的发展前景。
总结
Python 的 GUI 库非常多,我这里只是列举了一部分,选型的时候还是从项目规模、技术难度方面去考虑。不过我目前基本都是写一些小工具,所有这些库都可以适用。
【2】、来自网友【一个程序员的奋斗史】的最佳回答:
Python 开发界面,当然是没有问题了。下面介绍下常用的界面库。
1、PyQt
放在第一位介绍,足矣看出其重要性。一个创建 GUI 应用程序的工具包,它是 Python 编
程语言和 Qt 库的成功融合。优点如下:
-
社区支持较好
-
入门教程较多,新手遇到问题容易找到解决方案
-
Qt API 设计科学,值得学习参考
-
稳定,跨平台性能好
唯一需要注意的是商用版需要收费。下图是是使用使用 QSS 和 PyQt5 完成的界面效果图,感兴趣的同学可参考州的先生《Python GUI 教程》。
2、Tkinter
Python 默认的 GUI 库,基于 Tk 工具集,无需单独安装其他任何库就可直接使用。
看到很多小伙伴反映 Tkinter 不像 MFC、C#那样,没有可以拖拽控件工具,其实它是有的,只是不太好用而已。
3、wxPython
相信很多玩 C++的朋友都知道优秀的跨平台开源界面库 wxWidgets,其实,wxPython 就是其 Python 封装,是 Python 语言的一套优秀的 GUI 库。
最后,我想说的是,GUI 界面开发,真的不是 Python 的强项啊,就比如你用 Java SE 来开发 GUI 程序一个道理。如果立志于 Python 开发,可以试试其他方便,比如说爬虫、大数据、Web 开发、数据分析等。