tkinter 用 withdraw() 隐藏主界面作为登录原理是否是一个好办法?

2020-06-04 09:49:25 +08:00
 sudoy

用 python tkinter 写了个 Windows 桌面程序, 想做个登录界面,用户登录通过以后再跳转到主界面。找了很久终于找到一个能达到目的的方法,但是不知道这个方法是否存在安全隐患,也就是说用户能轻松跳过验证直接显示主界面。顺便说一下这个程序会编译成 exe 。以下是原理:

import tkinter as tk

root = tk.Tk()
root.geometry('500x300')

#In order to hide main window
root.withdraw()

tk.Label(root, text="Main Window").pack()

aWindow = tk.Toplevel(root)
aWindow.geometry('200x100')

def change_window():
    #remove the other window entirely
    aWindow.destroy()

    #make root visible again
    root.iconify()
    root.deiconify()

username = tk.StringVar()
tk.Entry(aWindow,  textvariable=username).pack()
tk.Button(aWindow, text="Login", command=change_window).pack()

root.mainloop()

欢迎大佬们指点,多谢!

3488 次点击
所在节点    Python
6 条回复
no1xsyzy
2020-06-04 09:57:09 +08:00
Python 一般没有真 exe
chengxiao
2020-06-04 10:29:01 +08:00
真的要用 Python 写 GUI 的话,还是去看下 PyQT 吧
tk 折腾过一段时间发现实在是太难用了
sudoy
2020-06-04 10:32:22 +08:00
@chengxiao 已经决定用 kivy 了,不过目前用 tk 写的已经再运行了暂时不想改。tk 有很多地方没法实现
XIVN1987
2020-06-04 15:49:59 +08:00
Tk 的界面这么丑,我不明白 Python 为啥一定要带着它

真觉得 GUI 必须,,换个好看点儿的不行吗??哪怕功能简陋些也许啊
panzhangwang
2020-06-05 09:02:22 +08:00
pysimplegui 推荐看下, 自动 Port 到 Tk, Qt 呀。 最近刚用它做了一个项目

https://github.com/cailaixiu/cailaixiu
ungrown
2020-10-15 10:09:42 +08:00
@XIVN1987 #4 主要是体积贼小
至于难用这方面,配合一些纯 python 的开源库,可以做到极少代码生成 UI (非复杂类型)
最终用极小的体积实现了不小的功能

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/678488

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX