python - tkinter 应用程序可以使用 httpServer 吗?
问题描述
我目前有以下代码,可以用作演示。代码设置为创建一个带有按钮的 Tkinter 窗口。当按下按钮时,它会在 localhost 上启动一个 HttpServer。我遇到的问题是 GUI 进入 Frozen / Stalled / Crashed 状态,我不明白为什么。我意识到 Tkinter 在单个线程中运行,但不确定单个线程将如何影响这一点。
def OpenUrl():
run()
class server_callback(BaseHTTPRequestHandler):
def do_GET(self):
# Send response status code
self.send_response(200)
# Send headers
self.send_header('Content-type','text/html')
self.end_headers()
# Send message back to client
message = "You can now close this Browser session!"
# Write content as utf-8 data
self.wfile.write(bytes(message, "utf8"))
return
def run():
print('starting server...')
server_address = ('127.0.0.1', 8080)
httpd = HTTPServer(server_address, server_callback)
print('running server...')
httpd.serve_forever()
root = Tk()
frame = Frame(root)
frame.pack()
button = Button(frame, text="CLICK", command=OpenUrl)
button.pack()
root.mainloop()
解决方案
推荐阅读
- talend - 如何在同一个子作业中读取和写入 Talend 中的同一个 excel 文件?
- python - 如何将字符串列表与另一个匹配
- python - discord.py - 意外的关键字参数错误
- reactjs - 功能组件嵌套与道具
- c - 检查列表是否为交替值
- c# - PresentationFramework.dll 中的 System.Windows.Markup.XamlParseException' 方法或操作未实现。(材料消息框)
- objective-c - 奇怪的 KERN_INVALID_ADDRESS 异常?
- python - 如何在不引用输出的情况下从 SQL 数据库获取密码?
- vue.js - PrimeVue:带有服务器端分页的数据表
- paypal-rest-sdk - Paypal 智能按钮信用卡填写或隐藏电话号码