Anaconda tkinter菜单。我在哪里拨打电话和代码?

问题描述 投票:1回答:1

运行Anaconda因为我想要统计功能。所以我创建了菜单系统,但我不确定:

  • 一旦我点击(例如)Group t选项,我想向用户提供更多选项以及其他下拉菜单或数据输入等。

但我不知道在哪里放置该统计信息的代码,然后我该怎么称呼它。

在C ++世界中,它可以在一个单独的文件中,或者稍后在程序中使用调用函数。我不知道怎么在Anaconda做这个。

import tkinter as tk


class Window(tk.Frame):

    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.main_window()
        self.widgets()

    # All main window parameters go here
    def main_window(self):
        self.master.title("Quick-Stat")
        self.master.geometry("1000x800")
        self.pack()

    def widgets(self):
        main_menu = tk.Menu(self.master, tearoff=0)
        self.master.config(menu=main_menu)

        # Create File Menu and Drop Down
        file = tk.Menu(main_menu, tearoff=0)
        file.add_command(label="Save")
        file.add_command(label="Exit", command=exit)
        main_menu.add_cascade(label="File", menu=file)

        # Create Edit Menu and Drop Down
        edit = tk.Menu(main_menu, tearoff=0)
        edit.add_command(label="Undo")
        main_menu.add_cascade(label="Edit", menu=edit)

        #Create Means Analysis Menu and Drop Down
        means = tk.Menu(main_menu,tearoff=0)
        means.add_command(label="Group t")
        means.add_command(label="Paired t")
        means.add_separator()
        means.add_command(label="ANOVA")
        means.add_separator()
        means.add_command(label="Mann-Whitney U")
        means.add_command(label="Wilcoxon rank sum")
        main_menu.add_cascade(label="Means", menu=means)

        #Create Chi-square Analysis Menus and Drop Down
        chi = tk.Menu(main_menu, tearoff=0)
        chi.add_command(label="Chi-Square 2x2 table")
        chi.add_command(label="Chi-Square for larger table")
        chi.add_separator()
        chi.add_command(label="McNemar's Test")
        chi.add_command(label="Fisher's Exact")
        main_menu.add_cascade(label="Tables", menu=chi)

        #Create Help Menu
        help = tk.Menu(main_menu, tearoff=0)
        help.add_command(label="Means Analysis")
        help.add_command(label="Chi-Square Analysis")
        main_menu.add_cascade(label="Help",menu=help)


main = tk.Tk()
comm_prog = Window(master=main)
main.mainloop()
python tkinter menu anaconda tk
1个回答
0
投票

假设您想要打开一个新的自定义对话框,您要做的是在Window类上创建一个回调方法,该方法创建一个新的tk.Toplevel实例(如果您愿意,还可以创建一个子类)。 FWIW,你从调用main得到的tk.Tk()窗口对象实际上是该类的子类的一个实例。

    def group_t_callback(self):
        dialog = tk.Toplevel(self.master)
        dialog.title("The Title")
        dialog.transient(self.master)
        # You might want to put some contents in here, etc.

然后,一旦你有了这个方法,你可以在创建它时将它连接到菜单项:

        means.add_command(label="Group t...", command=self.group_t_callback)
        # Hint: also check out the accelerator kwarg...

您应该注意的一个约定是,用户倾向于期望打开对话框的菜单项在其标签的末尾具有...。并非所有应用程序都完全一致,但如果可以的话,这是一个很好的约定。


有关制作对话框的更多信息,请尝试使用Introduction to Tkinter在线书籍。我省略了很多细节。

© www.soinside.com 2019 - 2024. All rights reserved.