使用tkinter中的链接打开新窗口

4
如何使用Tkinter中的链接打开一个新窗口?
例如,在登录窗口中,我想添加一个链接,上面写着“新用户?单击此处”,当我单击“单击此处”时,它会带我到注册窗口。

Screenshot

3个回答

1

创建新的toplevel窗口与创建新的小部件几乎完全相同。

使用Toplevel函数创建顶层窗口:

t = Toplevel(parent)

与常规小部件不同,您不必为顶层窗口“Grid”它才能出现在屏幕上。一旦创建了一个顶层窗口,您可以在其中添加子小部件并像在主窗口中一样对它们进行网格化。换句话说,顶层窗口的行为与自动创建的根窗口完全相同。
要销毁一个窗口,请使用以下方法:
window.destroy()

谢谢,但是有没有一种方法可以通过点击链接打开一个窗口,就像问题中的图片那样? - vaishnav girish

0

您可以使用tkinter.Toplevel()命令在tkinter中打开新窗口。

import tkinter as tk


class Gui:
    """Gui class"""
    def __init__(self):
        self.root = tk.Tk()

        self.new_window = tk.Button(master=self.root, text="Open new window", width=20, pady=4, command=self.new_window)
        self.new_window.pack()

        self.root.mainloop()

    def new_window(self):
        """Create a new top level window"""
        new_window = tk.Toplevel()
        tk.Label(master=new_window, text="This is a new window").pack()


if __name__ == '__main__':
    Gui()

谢谢,但是是否有一种方法可以通过点击链接打开窗口,就像问题中的图片那样? - vaishnav girish

0

您可以创建一个函数来打开一个新窗口,然后将其绑定到那个Label上,例如:

import tkinter as tk

def newWindow():
    # Window object (top level)
    newWindow = Toplevel(master)
 
    # Title
    newWindow.title("New Window 1")
 
    # Geometry
    newWindow.geometry("300x300")

root = tk.Tk()

label = tk.Label(text="Hello!", width=50, height=10, master=root)
label.pack()
label.bind("<Button-1>", newWindow)

谢谢,但是有没有一种方法可以通过点击链接打开一个窗口,就像问题中的图片那样? - vaishnav girish
@vaishnavgirish 然后将标签文本设置为链接。 - Delrius Euphoria
你可以修改标签为 Label(text="Hello!", width=50, height=10, master=root, fg="blue", cursor="hand2") 来模仿超链接。 - Shunya
非常感谢您!!!! - vaishnav girish
很高兴它起作用了,如果它对你有帮助,请确保接受答案,这样它就可以在未来帮助其他人。 - Shunya
你的代码帮了很大的忙,我会这么做的。 - vaishnav girish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接