五个Python框架帮助你创建全系统应用

已收录   阅读次数: 958
2021-12-2022:39:22 发表评论
摘要

Python 在各种用例中都取得了成功。但是很少有人理解和欣赏它在创建图形用户界面 (GUI) 方面的能力。事实上,我们有一些非凡的 Python GUI 框架,可以帮助开发人员快速建立一个界面来与他们的项目进行交互。这篇文章将讨论 3 个跨平台 GUI 框架和 2 个 Web 接口工具。我们还将介绍一些基本示例及其优势,以便您熟悉为下一个项目选择合适的示例……

分享至:
五个Python框架帮助你创建全系统应用

开篇寄语

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 浏览器上,您可以看到以下内容。

五个Python框架帮助你创建全系统应用
  • 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。

  • 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()
五个Python框架帮助你创建全系统应用

正如您在上面的示例中看到的,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框架,让你的开发效率事半功倍。

  • 我的微信
  • 微信扫一扫加好友
  • weinxin
  • 我的微信公众号
  • 扫描关注公众号
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: