如何解决PySimpleGUI - 我无法在浏览器上获得任何输出
这段代码计算用户在给定日期的班次。每 5 周轮换 3 次轮班(早上、晚上、晚上)。每个班次有 2 x 技术团队。第一个团队在周日至周四轮换第二个团队在周二至周六轮换
已使用 PySimpleGUI 实现了 GUI,以使代码更加用户友好。 我尝试使用 PySipmleGUIWeb 在我的网络浏览器中运行它。
在浏览器中启动应用程序我没有选择日期、班次等问题。一旦我点击提交按钮,实际上什么也没发生,我在 Pycharm 控制台中得到以下输出:
Returned from Remi Start command... Now sending None event
试图摆脱结果的弹出窗口,并试图只打印它们。我没有错误,但只有 PyCharm 控制台中的结果,而不是网络浏览器。
知道如何使用 PySimpleGUIWeb 完成这项工作吗?
非常感谢。
import datetime
import math
import calendar
import PySimpleGUIWeb as sg
import traceback
layout = [
[sg.Text("Please enter your Current Shift and the date you would like to check what rotation you will be.")],[sg.Text("Current Shift",size=(15,1)),sg.CheckBox("Morning",key="morning"),sg.CheckBox("Evening",key="evening"),sg.CheckBox("Night",key="night")],[sg.Text("First day Off",sg.Combo(["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],key="Day_Off")],[sg.Text("Date YYYY.MM.DD",size=(18,sg.InputText("Date in YYYY.MM.DD format",key="Date")],[sg.Submit(),sg.Cancel()]
]
window = sg.Window("Shift Rotation",layout=layout,background_color="#272533",size=(600,150),web_start_browser=True)
try:
while True:
event,values = window.read()
window.close()
if event is None:
break
if event == "Cancel":
break
if event == "Submit":
def Days_Off():
week = ["sunday","monday","tuesday","wednesday","thursday","friday","saturday"]
Dayoff2 = week[week.index(Dayoff1.lower())+1]
DayOffCheck = calendar.day_name[date1.weekday()]
if Dayoff1.lower() == DayOffCheck.lower() or Dayoff2.lower() == DayOffCheck.lower():
sg.popup("hey it is {}! You got the day off!".format(DayOffCheck))
else:
sg.popup("It is {}! You are working on that day!".format(DayOffCheck))
def Morning():
Morning = []
Evening = []
Night = []
x = 1
y = 2
z = 3
for i in range(99999):
Morning.append(float(x + 3 * i))
Evening.append(float(y + 3 * i))
Night.append(float(z + 3 * i))
if ShiftC in Morning:
sg.popup("You will be on Morning shift at requested date: {}".format(date_entry))
elif ShiftC in Evening:
sg.popup("You will be on Evening shift at requested date: {}".format(date_entry))
elif ShiftC in Night:
sg.popup("You will be on Night shift at requested date: {}".format(date_entry))
def Evening():
Evening = []
Night = []
Morning = []
x=1
y=2
z=3
for i in range(99999):
Evening.append(float(x+3*i))
Night.append(float(y+3*i))
Morning.append(float(z+3*i))
if ShiftC in Morning:
sg.popup("You will be on Morning shift at requested date: {}".format(date_entry))
elif ShiftC in Evening:
sg.popup("You will be on Evening shift at requested date: {}".format(date_entry))
elif ShiftC in Night:
sg.popup("You will be on Night shift at requested date: {}".format(date_entry))
def Night():
x = 1
y = 2
z = 3
Night = [x]
Morning = [y]
Evening = [z]
for i in range(1,99999):
Night.append(int(x + 3 * i))
Morning.append(int(y + 3 * i))
Evening.append(int(z + 3 * i))
if ShiftC in Morning:
sg.popup("You will be on Morning shift at requested date: {}".format(date_entry))
elif ShiftC in Evening:
sg.popup("You will be on Evening shift at requested date: {}".format(date_entry))
elif ShiftC in Night:
sg.popup("You will be on Night shift at requested date: {}".format(date_entry))
if values["morning"] == True:
SelectShift = "morning"
elif values["evening"] == True:
SelectShift = "evening"
elif values["night"] == True:
SelectShift = "night"
date_entry = values["Date"]
Dayoff1 = values["Day_Off"]
year,month,day = map(int,date_entry.split('.'))
date1 = datetime.date(year,day)
TotalD = (datetime.date(2021,1,9).toordinal() - date1.toordinal()) * -1
ShiftC = math.ceil(TotalD / 35)
if SelectShift.lower() == "morning":
Morning()
Days_Off()
elif SelectShift.lower() == "evening":
Evening()
Days_Off()
elif SelectShift.lower() == "night":
Night()
Days_Off()
except Exception as e:
tb = traceback.format_exc()
sg.Print(f'An error happened. Here is the info:',e,tb)
sg.popup_error(f'AN EXCEPTION OCCURRED!',tb)
解决方法
问题是
window.close()
在第 24 行使用。将它移到第 111 行,现在这就像一个魅力。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。