2017-12-22 30 views
1

통계 기능을 원하기 때문에 Anaconda를 실행 중입니다. 그래서 메뉴 시스템을 만든하지만 난 잘 모르겠어요 :아나콘다 메뉴. 어디에서 전화와 코드를 입력해야합니까?

  • 가 일단 내가 (예를 들어) 그룹 t 옵션을 클릭, 내가 에게 다른 드롭 다운 또는 데이터 입력에 더 많은 옵션을 사용자에게 제공 할

그러나 통계에 대한 코드를 어디에 둘 것인지, 어떻게 호출해야하는지 알 수 없습니다.

C++ 세계에서는 별도의 파일이거나 나중에 콜 기능이있는 프로그램에있을 수 있습니다. 나는 이것을 아나콘다에서 어떻게하는지 모른다.

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() 
+0

질문을 개선하기 위해 [Minimal, Complete, Verifiable example] (https://stackoverflow.com/help/mcve)을 제공하십시오. – Nae

+0

[여기] (http://zetcode.com/gui/tkinter/menustoolbars/)의 하위 메뉴 예제와 같은 뜻입니까? – Nae

+0

작은 프로그램이므로 하나의 파일에 모두 넣으십시오. 분리 된 파일에 정말 필요하다면 파일에 넣으십시오. 'options.py'를 실행하고'import options'을 실행하면'options.option1','options.option2' 등을 사용할 수 있습니다. – furas

답변

0

당신은 당신이 새로운 사용자 정의 대화 상자를 열고 자하는 의미한다고 가정하면, 당신이 당신이 새로운 tk.Toplevel 예 (또는 당신이 선호하는 경우의 서브 클래스)를 작성하여 Window 클래스에 콜백 메서드를 만드는 것입니다. FWIW maintk.Tk()을 호출 한 창 개체는 실제로 해당 클래스의 하위 클래스의 인스턴스입니다.

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

당신은 사용자가 메뉴를 기대하는 경향이 알아야 할 규칙 : 당신이 그 방법을 일단

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. 

그런 다음, 당신은 단지 당신이 그것을 만들 때 메뉴 항목으로 그것을 측량 할 수 있습니다 라벨이 끝나면 대화 상자가 열리는 항목은 ...입니다. 모든 응용 프로그램이 완전히 일관성있는 것은 아니지만 가능한 경우 수행하는 것이 좋습니다.


는 대화 상자를 만들기에 대한 자세한 내용은 Introduction to Tkinter 온라인으로 책을보십시오. 로터리을 생략했습니다.