
开篇寄语
Python 在各种用例中都取得了成功。但是很少有人理解和欣赏它在创建图形用户界面 (GUI) 方面的能力。事实上,我们有一些非凡的 Python GUI 框架,可以帮助开发人员快速建立一个界面来与他们的项目进行交互。这篇文章将讨论 3 个跨平台 GUI 框架和 2 个 Web 接口工具。我们还将介绍一些基本示例及其优势,以便您熟悉为下一个项目选择合适的示例。
内容详情
- Streamlit
Streamlit 是使用 Python 开发 Web 应用程序的绝佳工具。它具有声明式编码风格,我发现这非常有帮助。您无需了解任何 HTML、CSS 或 JavaScript,也无需学习任何 Web 开发在线课程。如果您了解 Python,那么您已经拥有了所需的一切。
您可以使用以下命令安装 Streamlit。
pip install streamlit
这是一个简单的应用程序,它在网页上显示一个 Pandas 数据框。
import streamlit as st import pandas as pd df = pd.read_csv( "https://raw.githubusercontent.com/ThuwarakeshM/PracticalML-KMeans-Election/master/voters_demo_sample.csv" ) st.title("Interactive K-Means Clustering") st.write("Here is the dataset used in this analysis:") st.write(df)
使用上述内容创建一个名为 quickstart.py 的文件。要启动 streamlit Web 服务器,请运行以下命令。
streamlilt run quickstart.py
此命令将启动一个开发服务器,在您的 Web 浏览器上,您可以看到以下内容。

- Plotly Dash
Plotly 已经存在好几年了。 Dash 是一个框架,它广泛利用 Plotly 图表以更少的代码构建 GUI。Plotly Dash 是一种灵活的解决方案,适用于各种应用程序。他们的网站称它旨在覆盖 Tableau 和 PowerBI 无法实现的方面。
使用 PyPI 存储库中的以下单个命令安装 Plotly Dash。
pip install dash
首先,您可以使用以下内容创建一个名为 app.py 的文件,然后像运行任何其他 Python 脚本一样运行它。
import dash import dash_core_components as dcc import dash_html_components as html import plotly.express as px import pandas as pd app = dash.Dash() df = pd.read_csv( "https://raw.githubusercontent.com/ThuwarakeshM/geting-started-with-plottly-dash/main/life_expectancy.csv" ) fig = px.scatter( df, x="GDP", y="Life expectancy", size="Population", color="continent", hover_name="Country", log_x=True, size_max=60, ) app.layout = html.Div([dcc.Graph(id="life-exp-vs-gdp", figure=fig)]) if __name__ == "__main__": app.run_server(debug=True)
运行以下代码以激活网络服务器。它将启动 Flask 开发服务器并在您的默认 Web 浏览器上打开它。
python app.py
在这个列表中,Plotly Dash 和 Streamlit 是更成熟的技术。虽然它们对开发 Web 应用程序非常有帮助,但我们有一些工具可以帮助我们用 Python 构建跨平台应用程序。下一个就是一个很好的例子。
比如此前伯衡君介绍的Tkinter。
- tkinter
- 伯衡君此前已经介绍过,可以创建Windows/MacOS/Linux应用,具体可以参看以下几篇文章:
- Kivy
- Kivy 是一个跨平台的 Python 软件开发框架。有了它,您可以为 Windows、OS X 和 Linux 创建桌面应用程序,为 iOS 和 Android 构建移动应用程序,并在 Raspberry Pi 上的嵌入式设备上使用它。
- Python 不再局限于 Web 和桌面开发。你可以做很多其他语言做不到的事情。也许,这就是为什么 Python 是 2021 年 Stackoverflow 开发人员调查中最受欢迎的技术的原因。
- 比如安装到Ubuntu系统,可以使用下面代码:
$ sudo add-apt-repository ppa:kivy-team/kivy $ sudo apt-get install python3-kivy
示例代码:
from typing import Text import kivy from kivy.uix.widget import Widget kivy.require("2.0.0") # replace with your current kivy version ! from kivy.app import App from kivy.uix.label import Label from kivy.uix.textinput import TextInput from kivy.uix.gridlayout import GridLayout class HomePage(GridLayout): def __init__(self, **kwargs): super(HomePage, self).__init__(**kwargs) self.cols = 2 self.add_widget(Label(text="Hello, what's your name?")) self.add_widget(TextInput(multiline=False)) class MyApp(App): def build(self): return HomePage() if __name__ == "__main__": MyApp().run()

正如您在上面的示例中看到的,Kivy 的网格布局对于在屏幕上排列 UI 元素非常方便。您只需指定列数并开始添加元素。 Kivy 足够智能,可以以最好的方式展示它们。
当然,Kivy 远不止这些。从他们的官方文档中,您可以了解更多关于 GPU 优化、移动构建、触摸支持等的信息。
Kivy 是一款出色的移动应用原型设计工具。如果您的团队不具备开发移动应用程序的技能,这可能是最佳选择。
- PyQt5
- PyQt5 是一个围绕 QT 构建的框架。 QT(和 PYQT5)支持跨功能开发。它支持 Windows、Mac、Linux 以及 iOS 和 Android 等移动平台。
- 除了令人印象深刻的 UI 组件外,PyQT5 还与原生 OS API 很好地集成在一起。 PYQT5 的一大优势是 QT 设计器,该工具可让您使用 QT 小部件直观地组合 UI。
- 您可以使用 PyPI 安装框架,如下所示:
pip install PyQt5
一个 hello world 风格的应用程序只需要几行代码就可以构建一个漂亮的 UI。
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel from PyQt5.QtGui import QIcon from PyQt5.QtCore import pyqtSlot def window(): app = QApplication(sys.argv) widget = QWidget() textLabel = QLabel(widget) textLabel.setText("Hello World!") textLabel.move(90,85) widget.setGeometry(50,50,320,200) widget.setWindowTitle("My first PyQt5 project") widget.show() sys.exit(app.exec_()) if __name__ == '__main__': window() sys.exit(app.exec_())
然而,PyQT5 不能免费用于商业用途。
选择适合自己的Python框架,让你的开发效率事半功倍。
- 我的微信
- 微信扫一扫加好友
-
- 我的微信公众号
- 扫描关注公众号
-