修改Tkinter(Python 3)中的窗口类

2024-06-28 19:40:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在努力掌握python3中的OOP和tkinter。我真的很想有子窗口弹出在使用过程中,无论是数据,输出等,但是,我不知道如何分配在我的windows类标题,这取决于什么样的窗口是正在进行。请找一个我到目前为止所做工作的简单例子。你知道吗

from tkinter import *

from tkinter import messagebox


class Window(Frame):

    def __init__(self, master = None):

        Frame.__init__(self, master)

        self.master = master

        self.init_window()

    def init_window(self):

        self.master.title("ProgramName")

        self.pack(fill = BOTH, expand = 1)

        menu = Menu(self.master)
        self.master.config(menu=menu)

        prog_help = Menu(menu)
        prog_help.add_command(label='Help', command=self.help_popup)
        prog_help.add_command(label='About', command=self.version_popup)
        menu.add_cascade(label='Help', menu=prog_help)

    #Method 1: Using message.box
    def version_popup(self):
        messagebox.showinfo("About program", "Version 0.1")
        return

    #Method 2: Using another window
    def help_popup(self):
        helpwindow()
        return

def helpwindow():
    hwindow = Toplevel()
    hwindow.geometry("100x100")

root = Tk()
root.geometry("400x300")

app = Window(root)

root.mainloop()

我想我应该在helpwindow()的定义中做些什么,它改变了self.master.title名称(x) ,但我不知道是什么。你知道吗

非常感谢您抽出时间。你知道吗


Tags: selfmasteraddinittkinterdefhelproot
1条回答
网友
1楼 · 发布于 2024-06-28 19:40:30

在您的例子中,帮助窗口不是任何东西的子类。只需调用Topleveltitle方法

def helpwindow():
    hwindow = Toplevel()
    hwindow.title("I am the help window")
    ...

相关问题 更多 >