我正在使用python中的eel库创建一个GUI应用程序。index.html
包含登录表单,如果登录成功,我想打开retrieve.html
。
这是我的python代码,请将登录视为成功
@eel.expose
def retrieve():
eel.start('retrieve.html', size=(1000, 700))
eel.start('index.html', size=(1000, 700))
这是我的javascript代码
function login_func()
{
var username = document.getElementById("username").value
var pword = document.getElementById("pword").value
eel.login(username, pword)(set_result)
}
function set_result(result)
{
if(result == "Failed")
{
window.alert("Please insert correct username and password")
}
else
{
window.close()
eel.retrieve()
}
}
一切都很好,但我收到了一条错误消息,那就是
OSError: [WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted: ('localhost', 8000)
如何避免这种情况
第二个窗口使用不同的端口号,如下所述:
@eel.exposuredef retrieve((:eel.start('retrieve.html', size=(1000, 700), **port = 8080**)
eel.start('index.html',size=(1000700(,端口=8000(
或者,检查https://deecode.net/?p=438&lang=en-
您不应该再调用eel.start
。。。它将设置一个新的本地服务器、websocket等。在这种情况下,您可以调用eel.show
,它将重用您现有的web实例来显示新的窗口和页面。
因此,将您的代码更改为类似以下内容:
@eel.expose
def retrieve():
eel.show('retrieve.html', size=(1000, 700))
确保每个窗口的端口不同