python-3.x 如何暂停窗口打开另一个窗口?

cuxqih21  于 2023-02-14  发布在  Python
关注(0)|答案(2)|浏览(187)

我使用tkinter和CTK:我创建了一个登录页面,我想在用户登录时停止或使用此页面,我想显示一个新窗口,我想在需要时恢复窗口?我该怎么做呢,我不知道该怎么做

uxhixvfz

uxhixvfz1#

这是一个示例应用程序,当用户单击主窗口上的按钮时,它会打开第二个窗口,并且在第二个窗口关闭之前禁止与主窗口的交互。
为了简洁起见,我们省略了一些配置,这里不使用CTk,因为我不知道您是如何在特定应用程序中实现它的--不过,修改这个示例以使用CTk应该很容易。

import tkinter as tk
from tkinter import ttk

class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.open_button = ttk.Button(
            self,
            text='Open 2nd Window',
            command=self.modal
        )
        self.open_button.pack()

    def modal(self):
        self.window = tk.Toplevel(self)  # create new window
        # bind a handler for when the user closes this window
        self.window.protocol('WM_DELETE_WINDOW', self.on_close)
        # disable interaction with the main (root) window
        self.attributes('-disabled', True)
        self.close_button = ttk.Button(
            self.window, 
            text='Close Modal', 
            command=self.on_close
        )
        self.close_button.pack()

    def on_close(self):
        # re-enable interaction the root window
        self.attributes('-disabled', False)
        # close the modal window
        self.window.destroy()

if __name__ == '__main__':
    app = App()
    app.mailoop()  # run the app

今后:
1.提供代码,表明您已真诚地努力自行解决问题
1.不要在数小时内多次发布同一个问题-如果需要更改,请编辑原始问题

xurqigkl

xurqigkl2#

如果你想在回到原来的窗口之前打开另一个窗口做一些事情,你应该考虑使用消息框。下面是一个介绍消息框类型的链接:https://docs.python.org/3/library/tkinter.messagebox.html.

相关问题