Python tkSimpleDialog全屏和焦点全屏父

时间:2017-07-05 19:38:11

标签: python user-interface tk simpledialog

我遇到了让tkSimpleDialog将焦点放在我的全屏窗口GUI上的问题。我有一个GUI,我试图使用一个对话框窗口作为管理员密码使用root.quit()关闭GUI(如kiosk模式应用程序)。这样做的问题是,如果父窗口是全屏,则对话框不会出现在父窗口的前面。另外,我想让tkSimpleDialog全屏显示。

以下是在我的程序中使用tkSimpleDialog.py调用/创建对话框的代码:

    def check_admin_password():
    # use askstring here to verify password.
    pass_attempt = simpledialog.askstring("Verifying access","Please enter Admin password", parent=window, show="*")
    if pass_attempt == "password":
        root.quit() # used whatever your instance of Tk() is here in place of root.

admin_minimize_button = Button(window, text = "Administrator", command = check_admin_password, width=35, height=12)
admin_minimize_button.grid(row=4, column=0)

我在父窗口中使用以下代码,我相信有一些覆盖对话窗口焦点的overrideredirect(True):

qwindow = Toplevel(root)                                            #renames Toplevel "popup" window frame to variable "qwindow"
qwindow.title('Mission Queue')                                      #creates title on popup window
w, h = qwindow.winfo_screenwidth(), qwindow.winfo_screenheight()    #aquires dimensions from display size
qwindow.geometry("%dx%d+0+0" % (w, h))                              #sets window size to aquired dimensions
qwindow.overrideredirect(True)                                      #removes top bar and exit button from parent window frame

我已经尝试编辑tkSimpleDialog.py文件并添加了overrideredirect(True)行,但这不起作用。如果需要更多信息,请告诉我。任何建议将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

由于我无法使用tkSimpleDialog找出解决方案,我尝试了另一种创建自己的“对话框”的方法。不幸的是,我仍然无法获得对话框,让屏幕窗口设置为wm_attributes('-fullscreen', 'True')overrideredirect(True),使输入行成为焦点。虽然最好同时工作;就我的目的而言,如果没有overrideredirect(True),我的应用程序中的全屏可以正常工作。对于有类似问题或希望查看有关我的进度的更多文档的任何人,请参阅我的其他论坛帖子的链接:(Tkinter Entry Widget with Overrideredirect and Fullscreen)。 谢谢你的帮助!