返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用Python构建简单的UI
  • 357
分享到

如何使用Python构建简单的UI

2023-06-16 08:06:09 357人浏览 安东尼

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

摘要

如何使用python构建简单的UI,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。借助Streamlit框架,使用用户界面展示Python项目变得前所未有的简单,

如何使用python构建简单的UI,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

借助Streamlit框架,使用用户界面展示Python项目变得前所未有的简单,你可以仅仅使用Python代码来构建基于浏览器的UI。

本次演示将为迷宫求解器程序构建UI。

Streamlit

Streamlit是一种WEB框架,旨在供数据科学家使用Python轻松部署模型和可视化。它运行速度既快又简约,代码既漂亮又对用户友好。

它们是有用于用户输入的内置小部件,例如图像上载、滑块、文本输入,以及其他熟悉的html元素(例如复选框和单选按钮)。每当用户与简化的应用程序进行交互时,python脚本就会从头到尾重新运行,这是在考虑应用程序的不同状态时要记住的重要概念。

使用pip安装Streamlit:

Pip install streamlit

并在python脚本上运行streamlit:

Streamlit run app.py

使用例子

我在上一篇文章中演示构建了一个Python程序

(https://towardsdatascience.com/solving-mazes-with-python-f7a412f2493f),该程序将解决给定图像文件和起始/结束位置的迷宫。

现在,我希望将此程序变成一个单页Web应用程序,用户可以在其中上传迷宫图像(或使用默认迷宫图像),调整迷宫的开始和结束位置,并查看最终解决的迷宫。

首先,为图像上传器创建UI,并选择使用默认图像的选项。可以使用st.write()或st.title()之类的函数添加文本输出,使用streamlit的st.file_uploader()函数存储动态上传的文件。最后,st.checkbox()将根据用户是否已选中复选框返回一个布尔值。

import streamlit as st          import cv2          import matplotlib.pyplot as plt          import numpy as np          import maze                    st.title( Maze Solver )          uploaded_file = st.file_uploader("Choose an image", ["jpg","jpeg","png"]) #image uploader          st.write( Or )          use_default_image = st.checkbox( Use default maze )

结果:

如何使用Python构建简单的UI

然后,可以将默认图像或上传的图像读取为可用的OpenCV图像格式。

if use_default_image:                        opencv_image = cv2.imread( maze5.jpg )                                      elif uploaded_file isnotNone:                        file_bytes = np.asarray(bytearray(uploaded_file.read()), dtype=np.uint8)                        opencv_image = cv2.imdecode(file_bytes, 1)

上载图像后,要显示标记有起点和终点的图像。将使用滑块允许用户重新定位这些点。st.sidebar()函数在页面上添加了一个侧边栏,st.slider()在定义的最小值和最大值内接受数字输入,你可以根据迷宫图像的大小动态定义滑块的最小值和最大值。

if opencv_image isnotNone:                 st.subheader( Use the sliders on the left to position the start and endpoints )                 ststart_x = st.sidebar.slider("Start X", value=24if use_default_image  else50, min_value=0, max_value=opencv_image.shape[1], key= sx )                 ststart_y = st.sidebar.slider("Start Y", value=332if use_default_image  else100, min_value=0, max_value=opencv_image.shape[0], key= sy )                 finish_x = st.sidebar.slider("Finish X", value=309if use_default_image  else100, min_value=0, max_value=opencv_image.shape[1], key= fx )                 finish_y = st.sidebar.slider("Finish Y", value=330if use_default_image  else100, min_value=0, max_value=opencv_image.shape[0], key= fy )                 marked_image = opencv_image.copy()                 circle_thickness=(marked_image.shape[0]+marked_image.shape[0])//2//100#circle thickness based on img size                 cv2.circle(marked_image,(start_x, start_y), circle_thickness, (0,255,0),-1)                 cv2.circle(marked_image,(finish_x, finish_y), circle_thickness, (255,0,0),-1)                 st.image(marked_image,channels="RGB", width=800)
如何使用Python构建简单的UI

每当用户调整滑块时,图像都会快速重新渲染,并且点会更改位置。

一旦用户确定了开始位置和结束位置,就需要一个按钮来解决迷宫并显示解决方案。仅在其子进程运行时显示st.spinner()元素,并且使用st.image()调用显示图像。

if marked_image isnotNone:                 if st.button( Solve Maze ):                     with st.spinner( Solving your maze ):                         path = maze.find_shortest_path(opencv_image,(start_x,start_y),(finish_x, finish_y))                     pathed_image = opencv_image.copy()                     path_thickness = (pathed_image.shape[0]+pathed_image.shape[0])//200                     maze.drawPath(pathed_image,path, path_thickness)                     st.image(pathed_image,channels="RGB", width=800)
如何使用Python构建简单的UI

Streamlit按钮和微调器

如何使用Python构建简单的UI

显示解决的迷宫

瞧瞧,不需要编写任何传统的前端代码,我们用不到40行代码为Python图像处理应用程序创建了一个简单的UI。

事实上,  Streamlit除了能够消化简单的Python代码之外,无论用户与页面进行交互还是更改了脚本,Streamlit都会从上至下智能地重新运行脚本的必要部分,这样可以实现直接的数据流和快速开发,它让一切变得简单!

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网Python频道,感谢您对编程网的支持。

--结束END--

本文标题: 如何使用Python构建简单的UI

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

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

猜你喜欢
  • 如何使用Python构建简单的UI
    如何使用Python构建简单的UI,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。借助Streamlit框架,使用用户界面展示Python项目变得前所未有的简单,...
    99+
    2023-06-16
  • 使用 Python 构建 GUI 最简单的方法
    根据我的经验,所有使用 Python 的 GUI 框架(Tkinter、PyQT 等)似乎都有些难以上手。那么让我们来看看我最喜欢且最简单的使用 Python 构建 GUI 的方法之一!Streamlit我喜欢使用的包是 Streamlit...
    99+
    2023-05-14
    开发 Python GUI
  • 如何使用Node.js构建一个简单Web服务器
    Node.js是一个用于后端服务的JavaScript运行环境,它允许开发者使用同一种语言编写服务器端和客户端应用程序。与其他后端技术相比,Node.js具有更高的处理能力和更好的可扩展性。在这篇文章中,我们将介绍如何使用Node.js构建...
    99+
    2023-05-14
  • 如何使用 PHP 构建表单?
    如何在 php 中构建表单?创建使用 标签的表单,指定 action 和 method 属性。通过 元素收集用户输入,包括文本、电子邮件、单选按钮和复选框。使用 $_post 或 ...
    99+
    2024-04-20
    php 构建表单
  • python简单构建可用IP代理池
    以下为简单示例: import requests import re import telnetlib url='http://www.66ip.cn/nmtq.phpgetnum...
    99+
    2024-04-02
  • 如何用Python编程构建一个简单的掷骰子游戏
    这篇文章主要介绍“如何用Python编程构建一个简单的掷骰子游戏”,在日常操作中,相信很多人在如何用Python编程构建一个简单的掷骰子游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Python编程...
    99+
    2023-06-15
  • 如何在Python中构建一个简单的推荐系统
    如何在Python中构建一个简单的推荐系统推荐系统是为了帮助人们发现和选择他们可能感兴趣的物品而设计的。Python提供了丰富的库和工具,可以帮助我们构建一个简单但有效的推荐系统。本文将介绍如何使用Python构建一个基于用户的协同过滤推荐...
    99+
    2023-10-22
    Python 推荐系统 构建
  • 使用 python 创建最简单的 htt
    此文版权属于作者所有,任何人、媒体或者网站转载、借用都必须征得作者本人同意! #!/usr/bin/env python # taken from https://gist.github.com/dergachev/7028596...
    99+
    2023-01-31
    最简单 python htt
  • Vue 2.0+Vue-router如何构建一个简单的单页应用
    这篇文章主要介绍Vue 2.0+Vue-router如何构建一个简单的单页应用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、介绍vue.js 是 目前 最火的前端框架,vue.j...
    99+
    2024-04-02
  • 怎么使用Flask构建简单的RESTful服务
    本篇文章给大家分享的是有关怎么使用Flask构建简单的RESTful服务,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。    我们现在的...
    99+
    2023-06-05
  • 如何用python创建最简单的服务器
    今天就跟大家聊聊有关如何用python创建最简单的服务器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  本文使用socket实现,  使用python访问  下面,我们开始讲解实现...
    99+
    2023-06-02
  • Python构建简单线性回归模型
    目录线性回归模型1.加载数据2.划分训练集和测试集3.训练模型4.预测数据5.画图展示线性拟合情况6.预测数据测试评估模型精度1.计算回归模型精度模型持久化前言: 本文介绍如何构建简...
    99+
    2024-04-02
  • 如何使用Python写一个简单的JSONParser
    本篇内容主要讲解“如何使用Python写一个简单的JSONParser”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Python写一个简单的JSONParser”吧!JSON Token...
    99+
    2023-07-06
  • 如何使用Python和创建简单语音识别引擎
    如何使用Python和创建简单语音识别引擎,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。语音识别是机器或程序识别口语中的单词和短语并将其转换为机器可读格式的能力。通常,这些...
    99+
    2023-06-16
  • 如何使用JavaScript创建一个简单的项目
    JavaScript 是一种非常有用的编程语言,它被广泛应用于 web 开发、构建单页应用等领域。因此,了解如何使用 JavaScript 创建项目,是每个 web 开发者都需要掌握的基础技能。在本文中,我们将介绍如何使用 JavaScri...
    99+
    2023-05-14
  • 如何使用php搭建一个简单的网站
    要使用PHP搭建一个简单的网站,您可以按照以下步骤进行操作:1. 安装PHP:首先,您需要在您的计算机上安装PHP。您可以从PHP官...
    99+
    2023-08-24
    php
  • 怎么使用Python人工智能构建简单聊天机器人
    今天小编给大家分享一下怎么使用Python人工智能构建简单聊天机器人的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么是聊天...
    99+
    2023-07-05
  • 如何使用 PHP 构建单页应用程序
    使用 php 构建单页应用程序 (spa) 的步骤:创建 php 文件,并加载 vue.js。定义 vue 实例,并创建包含文本输入和输出文本的 html 界面。创建包含 vue 组件的...
    99+
    2024-05-04
    php 单页应用程序 vue 表单提交
  • 如何使用Python绘制简单的折线图
    这篇文章主要讲解了“如何使用Python绘制简单的折线图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Python绘制简单的折线图”吧!创建RandomWalk类为模拟随机漫步,我们...
    99+
    2023-07-04
  • vs2019中使用MFC构建简单windows窗口程序
    微软基础类库(英语: Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作