python-2.7 - 需要简单的示例代码来使用 pysimplegui 创建 ui
问题描述
我正在尝试使用 pysimplegui 为 api 调用心跳创建一个 ui,该功能非常简单。我将每 5 分钟调用一次发送 api 调用请求,以检查服务器是否还活着,如果还活着,然后显示为 ok,如果 api 调用失败,然后显示 not ok 按钮我只需要一个简单的代码开始,这样我就可以修改之后从未使用过pysimplegui 之前
用户界面只需要像这样:
API 1 - OK / NOT OK
API 2 - OK / NOT OK
如果有人可以提供帮助,将不胜感激
谢谢
解决方案
不适用于 Python 2.7
如果不需要太多时间来获取心跳状态,则使用timeout
方法read
的选项循环sg.Window
,否则需要多线程。
from random import choice
import PySimpleGUI as sg
def heartbeat(port):
return choice(choices)
choices = [False] + [True]*10
sg.theme("DarkBlue3")
sg.set_options(font=("Courier New", 12))
layout = [
[sg.Text("API 1 ", key="API 1")],
[sg.Text("API 2 ", key="API 2")],
]
window = sg.Window('Title', layout, finalize=True)
while True:
event, values = window.read(timeout=300000) # 5 minutes = 300000ms
if event == sg.WINDOW_CLOSED:
break
elif event == sg.TIMEOUT_KEY:
val1 = "API 1 OK" if heartbeat(1) else "API 1 NG"
val2 = "API 2 OK" if heartbeat(2) else "API 2 NG"
window['API 1'].update(val1)
window['API 2'].update(val2)
window.close()
推荐阅读
- raspberry-pi - 无板树莓派硬件模拟
- architecture - 在 CQRS 模式中的命令处理程序中查询数据库
- java - 在for循环中找到最大值
- swift - NStimer 和 Dispatchqueue 在使用 airpot 时启动有点晚
- javascript - 在 handleChange Typescript 中传递值
- ios - flutter iOS有白屏
- javascript - 将风向从度数转换为文本
- javascript - content.js 在同一页面的不同框架上的所有单独执行如何相互通信?
- amazon-web-services - Glue Crawler 无法识别时间戳
- javascript - 在 gatsby 构建之前运行 python 脚本