class MainApplication(tk.Frame):
    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent, *args, **kwargs)
        self.parent = parent

        LC_result = None

        old_age_choice = None
        old_gender_choices = None
        old_smk_years_choices = None
        old_qt_years_choices = None
        old_cpd_choices = None
        old_race_choices = None
        old_emp_choices = None
        old_flt_choices = None
        old_bmi_entry = None
        old_edu6_choices = None

        # init reading data table
        life_table = read_life_table_from_file(
            "input/Copy of Lung cancer_7-19-2019.xlsx")
        local_cancer = read_LC_table_from_file(
            "input/Copy of Lung cancer_7-19-2019.xlsx")
        regional_cancer = read_regional_cancer_table_from_file(
            "input/Copy of Lung cancer_7-19-2019.xlsx")
        distant_cancer = read_distant_cancer_table_from_file(
            "input/Copy of Lung cancer_7-19-2019.xlsx")

        # initiate the basehaz and the model_coef array to calculate the LCRAT_1mon_risk
        basehaz_G = get_basehaz_from_file("input/lcrisk_tool.xlsx", 6)
        basehaz_H = get_basehaz_from_file("input/lcrisk_tool.xlsx", 7)
        basehaz_J = get_basehaz_from_file("input/lcrisk_tool.xlsx", 9)
        model_coef_D = get_model_coef_from_file("input/lcrisk_tool.xlsx", 3)
        model_coef_F = get_model_coef_from_file("input/lcrisk_tool.xlsx", 5)

        self.memubar = MenuBar(parent)
        self.statusbar = StatusBar(self)
        self.toolbar = ToolBar(self)
        self.navbar = NavigationBar(self)
        self.main = Main(root)

        self.statusbar.pack(side="bottom", fill="x")
        self.toolbar.pack(side="top", fill="x")
        self.navbar.pack(side="left", fill="y")
        self.main.pack(side="right", fill="both", expand=True)

    def set_new_changing_state(p):
        global old_age_choice, old_gender_choices, old_smk_years_choices, old_qt_years_choices, old_cpd_choices, \
            old_race_choices, old_emp_choices, old_flt_choices, old_bmi_entry, old_edu6_choices

        old_age_choice = p.age
        old_gender_choices = p.gender
        old_smk_years_choices = p.smkyears
        old_qt_years_choices = p.qtyears
        old_cpd_choices = p.cpd
        old_race_choices = p.race
        old_emp_choices = p.emp
        old_flt_choices = p.fam_lung_trend
        old_bmi_entry = p.bmi
        old_edu6_choices = p.edu6
Esempio n. 2
0
def Create_Main():
    root = Tk()
    root.geometry("1280x700")
    root.resizable(0, 0)  # Code to ensure that the window did not resize.
    root.title("Main")  # Set Main Title.

    font = ("Forte", 12)

    bkg = PhotoImage(file="Imgs/background2.gif")
    bkg_lbl = Label(root, image=bkg)
    bkg_lbl.place(x=0, y=0, relwidth=1, relheight=1)

    lbl_1 = Label(root, text="Player 1", font=font, bg="White", fg="gray")
    lbl_1.place(x=180, y=130)

    lbl_1 = Label(root, text="Player 2", font=font, bg="White", fg="gray")
    lbl_1.place(x=950, y=130)



# --------------------------- Barras de Estado ------------------------

    Bar_Turno = StatusBar(root)

    Bar_Turno.set("Turno: %s", "Jugador 1")
    Bar_Turno.pack(padx=30, pady=65)

    Bar_Tiros_Player1 = StatusBar(root)
    Bar_Tiros_Player2 = StatusBar(root)
    Bar_Tiros_Player1.place(x=265, y=130)
    Bar_Tiros_Player2.place(x=1040, y=130)

    Bar_Tiros_Acert_Play1 = StatusBar(root)
    Bar_Tiros_Acert_Play2 = StatusBar(root)
    Bar_Tiros_Acert_Play1.place(x=365, y=130)
    Bar_Tiros_Acert_Play2.place(x=1145, y=130)


    Bar_Tiros_Player1.set("Tiros Totales: %s", "0")
    Bar_Tiros_Player2.set("Tiros Totales: %s", "0")

    Bar_Tiros_Acert_Play1.set("Tiros Acertados: %s", "0")
    Bar_Tiros_Acert_Play2.set("Tiros Acertados: %s", "0")


    frm_2 = Frame(root, width=520, height=520, bd=-2, bg="gray")
    frm_1 = Frame(root, width=520, height=520, bd=-2, bg="gray")

    frm_1.pack(side=LEFT)
    #frm_1.pack_propagate(0)

    frm_2.pack(side=RIGHT)

    def dialog_cons(n, msg):
        """

            :rtype : object
            """
        widg = Dialog(root, n)
        root.wait_window(widg.top)
        while widg.result == "":
            if msg != None:
                messagebox.showinfo("Warning!", msg)
            else:
                messagebox.showinfo("Warning!", "Please insert the name for the %s Player!" % n)
            widg = Dialog(root, n)
            root.wait_window(widg.top)
        return widg.result

    OneTwoPlayer = messagebox.askyesno("Player or PC", "Do you want to play with other human? (No = PC)")
    if OneTwoPlayer == 1:
        player1 = dialog_cons(1, None)
        player2 = dialog_cons(2, None)
        print(player1, player2)    # Testing Lines
    else:
        player1 = dialog_cons(1, None)
        player2 = "Computer"
        print(player1, player2)    # Testing Lines

    try:
        ships = int(dialog_cons("Ships", "Please Quantity of ships for the Game!"))
    except ValueError:
        messagebox.showinfo("Warning!", "La variable debe ser numero")
        ships = int(dialog_cons("Ships", "Please Quantity of ships for the Game!"))
    print(ships)    # Testing Lines

    try:
        xy = int(dialog_cons("Quantity of matrix: (Ej: nxn, insert n)", "Please insert the size for Game's matrix!"))
    except ValueError:
        messagebox.showinfo("Warning!", "La variable debe ser numero!")
        xy = int(dialog_cons("Ships", "Please Quantity of ships for the Game!"))
    print(xy)    # Testing Lines

    game = Main(player1, player2, xy, xy, ships)
    game.imprimir
    game.imprimir2
    game.images(frm_1, game.matrix_shoots_player_1, game.matrix_player_1)
    game.images(frm_2, game.matrix_shoots_comp_player_2, game.matrix_comp_player_2)




    frm_1.bind("<Button-1>", callback)
    frm_2.bind("<Button-1>", callback)

    root.bind("<Button-1>", callback)

    root.mainloop()
Esempio n. 3
0
class PyDrawCanvas(tk.Canvas):

    def __init__(self, master=None, **kwargs):
        super().__init__(master=master, **kwargs)
        self.elements = []
        self.init_events()
        self.init_menubar()
        self.init_context()
        self.set_appicon()
        self.set_title()
        self.statusbar = None
        self.drp_Operation = None
        self.selectedObject = None

    # region Inits

    def set_appicon(self):
        self.master.tk.call('wm', 'iconphoto', self.master._w, PhotoImage(file='appicon.png'))

    def set_title(self):
        self.master.title("PyDraw by Festina Lente Software ")

    def init_events(self):
        self.focus_set()
        self.bind("<Key>", self.on_keypress)
        self.bind("<Configure>", self.on_resize)
        self.bind("<ButtonPress-1>", self.on_left_click)
        self.bind("<B1-Motion>", self.on_drag)
        self.bind("<ButtonRelease-1>", self.on_drop)
        self.master.protocol('WM_DELETE_WINDOW', self.on_closing)

    def init_menubar(self):
        self.menubar = MainMenu(self.master, self)

    def init_after_pack(self):
        self.create_statusbar()

    # endregion

    # region DrawingContext

    def init_context(self):
        self.drawing_area = Rectangle((0, 0, 1000, 1000))
        self.canvas_area = Rectangle((0, 0, self.winfo_width(), self.winfo_height()))
        self.drawing_context = DrawingContext(orig=self.drawing_area, target=self.canvas_area, border=0.05)

    def transposeBack(self, pos):
        return self.drawing_context.transposeBack(pos)

    def transpose(self, pos):
        return self.drawing_context.transpose(pos)

    # endregion

    # region Events

    def on_keypress(self, event):
        ec = event.char
        ek = event.keysym

        if ek == 'Escape':
            self.selectedObject = None


    def on_resize(self, event):
        self.canvas_area = Rectangle((0, 0, self.winfo_width(), self.winfo_height()))
        self.drawing_context.target_rect = self.canvas_area
        self.redraw()

    def on_left_click(self, event):
        x, y = event.x, event.y
        d_point = self.drawing_context.transposeBack(Point(x, y))
        if not self.drawing_area.contains_point(d_point):
            # ignore outside border
            return

        if self.selectedObject:
            self.drp_Operation = Drp_MoveObject(self, Point(x, y), self.selectedObject)
        else:
            newLine = LineElement(start=d_point, end=d_point + (1, 1))
            self.add_element(newLine)
            self.redraw()
            self.drp_Operation = Drp_DrawLine(self, Point(x, y), newLine)
            self.selectedObject = newLine

    def on_object_click(self, object, event):
        self.selectedObject = object
        # print(f"on_object_click: event={event},object={object}")

    def on_closing(self):
        if not messagebox.askokcancel(
                'Exit Tool',
                'Do you really want to exit this tool?'):
            return
        self.master.destroy()

    def on_drag(self, event):
        if self.drp_Operation:
            self.drp_Operation.on_drag((event.x, event.y))

    def on_drop(self, event):
        if self.drp_Operation:
            self.drp_Operation.on_drop((event.x, event.y))
            self.drp_Operation = None

    # endregion

    # region Elements

    def add_element(self, drawing_element):
        self.elements.append(drawing_element)
        self.redraw()

    def new_drawing(self):
        self.setStatusMessage(text='Creating new drawing')
        self.elements = []
        self.redraw()
        self.setStatusMessage(text='Created new drawing', resetInSecs=5)

    # endregion

    # region Drawing

    def redraw(self):
        self.delete("all")
        self.draw_border()
        for element in self.elements:
            element.draw_on_canvas(self, self.drawing_context)

    def draw_border(self):
        ctx = self.drawing_context
        p1 = ctx.transpose(self.drawing_area.start)
        p3 = ctx.transpose(self.drawing_area.end)
        p2, p4 = Point(p1.x, p3.y), Point(p3.x, p1.y)
        points = [p1, p2, p3, p4, p1]
        flat_points = [item for p in points for item in p.xy]
        self.create_line(*flat_points)

    # endregion

    # region Statusbar

    def create_statusbar(self):
        self.statusbar = StatusBar(master=self.master)
        self.statusbar.pack(fill=tk.X)

    def setStatusMessage(self, **kwargs):
        if self.statusbar:
            self.statusbar.setMessage(**kwargs)
        else:
            txt = kwargs.get("text", "")
            print(f'{datetime.now()} Status:  {txt}')

    def setProgress(self, **kwargs):
        if self.statusbar:
            self.statusbar.setProgress(**kwargs)
        else:
            ptext = kwargs.get('text', '')
            value = kwargs.get('value', 0)
            range = kwargs.get('maximum', 0)
            progr = "" if not value \
                else f'[{value}]' if not range \
                else f'[{value}/{range}]'

            print(f'{datetime.now()} Progress: {progr} - {ptext}')