Beispiel #1
0
class App:
    def __init__(self, master):
        self.frame = Frame(master)
        self.frame.pack()

        self.var = StringVar()
        self.data_queue = Queue()

        self.button = Button(self.frame, text=self.var)
        self.button.pack(side=LEFT)

        # start the "fetch" thread (just generate data from the clock)
        self.stop_thread = False
        self.thread = Thread(target=self.get_data, args=("DATA thread", self.data_queue))
        self.thread.start()

        # when user clicks "close" widget, call self.stop_all()
        master.protocol("WM_DELETE_WINDOW", self.stop_all )

        self.frame.after(500, self.updater)

    def get_data(self, threadname, q):
        while not self.stop_thread:
            a = str(time.time())
            self.data_queue.put(a)
            print(f'get_data: put "{a}" to queue')
            time.sleep(3)

    def updater(self):
        while not self.data_queue.empty():
            var = self.data_queue.get()
            print(f'updater: got {var}')
        self.frame.after(500, self.updater)     # call again after 500ms

    def stop_all(self):
        """Catch the "window close event".

        We must kill the thread and then call normal quit() function.
        """

        self.stop_thread = True
        self.thread.join()      # wait for thread to stop
        self.frame.quit()       # call normal frame quit()
Beispiel #2
0
 def quit(self, event=None):
     Frame.quit(self)
Beispiel #3
0
 def quit(self):
     if askyesno("Verify Quit", "Do you really want to quit?"):
         Frame.quit(self)
Beispiel #4
0
 def quit(self):
     "Stop everything and quit."
     self.stop(wait=False)
     Frame.quit(self)
Beispiel #5
0
 def quit(self):
     ans = askokcancel('Verify exit', "Really quit?")
     if ans:
         Frame.quit(self)
Beispiel #6
0
 def quit(self):
     """
     Quits the application after requesting confirm
     """
     if askyesno('Verify quit', 'Are you sure you want to quit?'):
         Frame.quit(self)
Beispiel #7
0
class Login():
    """登录"""
    def __init__(self, master=None):
        if self.isLoggedIn() is True:
            MainPage(master)
        else:
            self.root = master
            self.root.title("账号登陆")
            set_window_center(self.root, 300, 180)
            # 定义变量
            self.username = StringVar()
            self.password = StringVar()
            self.init_menu()
            self.init_page()

    def init_page(self):
        """登录界面"""

        self.page = Frame(self.root)  # 创建Frame
        self.page.pack()

        Label(self.page).grid(row=0, stick="W")

        Label(self.page, text="账户: ").grid(row=1, stick="W", pady=10)
        username = Entry(self.page, textvariable=self.username)
        username.grid(row=1, column=1, stick="E")
        username.bind("<Return>", self.returnEnvent)

        Label(self.page, text="密码: ").grid(row=2, stick="W", pady=10)
        password = Entry(self.page, textvariable=self.password, show="*")
        password.grid(row=2, column=1, stick="E")
        password.bind("<Return>", self.returnEnvent)

        button_login = Button(self.page, text="登陆", command=self.doLogin)
        button_login.grid(row=3, column=1, stick="W", pady=10)

        button_cancel = Button(self.page, text="退出", command=self.doCancel)
        button_cancel.grid(row=3, column=1, stick="e")

    def init_menu(self):
        """创建菜单栏"""
        menubar = Menu(self.root)
        filemenu = Menu(menubar, tearoff=0)
        filemenu.add_command(label="退出", command=self.root.quit)
        menubar.add_cascade(label="文件", menu=filemenu)
        self.root.config(menu=menubar)

    def doLogin(self):
        username = self.username.get()
        password = self.password.get()
        res = dbcontent.user_login(username, password)
        if res is True:
            # if username == "admin" and password == "admin": # 测试账号
            self.page.destroy()

            glv.set_variable("CURRENT_USER_NAME", str(username))
            MainPage(self.root)
        else:
            messagebox.showinfo(title="错误", message="账号或密码错误!")

    def doCancel(self):
        self.page.quit()

    def returnEnvent(self, event):
        self.doLogin()

    def isLoggedIn(self):
        # return True
        return False
 def quitter(self):
     if askyesno("Confirmation",
                 f"Voulez-vous vraiment fermer {self.nom_editeur} ?"):
         Frame.quit(self)
Beispiel #9
0
 def quit( self ):
     # Fecha o programa
     Frame.quit( self )
Beispiel #10
0
class LoginGUI:
    frame = None
    password = tk.StringVar()  # defines the widget state as string
    ID = tk.StringVar()
    remember_me = tk.BooleanVar()

    def __init__(self, root):
        self.root = root
        root.option_readfile('Appdata/option')
        root.title("Login to manage")
        self.frame = Frame(self.root, borderwidth=5)
        tk.Label(self.frame, text="    Adminstration:").grid(row=1, column=1)
        tk.Entry(self.frame, width=20, textvariable=self.ID).grid(row=1,
                                                                  column=2,
                                                                  columnspan=2)
        #Password
        tk.Label(self.frame, text="    Password:"******"*",
                 textvariable=self.password).grid(row=2,
                                                  column=2,
                                                  columnspan=2)
        #Remember
        tk.Checkbutton(self.frame, text="Remember",
                       variable=self.remember_me).grid(row=3, column=1)
        self.remember_me.set(False)
        tk.Button(self.frame, text="Login", command=self.Login).grid(row=3,
                                                                     column=3)
        tk.Label(self.frame, text="    ").grid(row=2, column=4)
        tk.Label(self.frame, text="    ").grid(row=1, column=4)
        self.frame.pack()

    def getInfo(self):
        querry = "SELECT * FROM Acc"
        result = ketNoiSql.execute(querry)
        info = None
        for row in result:
            if (str(row[0]) == self.ID.get()):
                info = row
                break
        return info

    def Login(self):
        info = self.getInfo()
        if ((info == None or self.password.get() == None
             or self.ID.get() == None)
                or (str(info[0]) != self.ID.get()
                    and str(info[1]) != self.password.get())):
            noti = Label(self.frame, text=" Sai", fg='red').grid(row=1,
                                                                 column=4)
            noti = Label(self.frame, text=" Sai", fg='red').grid(row=2,
                                                                 column=4)
        else:
            if str(info[0]) == self.ID.get() and str(
                    info[1]) != self.password.get():
                noti = Label(self.frame, text=" OK ", fg='blue').grid(row=1,
                                                                      column=4)
                noti = Label(self.frame, text=" Sai", fg='red').grid(row=2,
                                                                     column=4)
            if str(info[0]) == self.ID.get() and str(
                    info[1]) == self.password.get():
                noti = Label(self.frame, text=" OK ", fg='blue').grid(row=1,
                                                                      column=4)
                noti = Label(self.frame, text=" OK ", fg='blue').grid(row=2,
                                                                      column=4)
                ketNoiSql.close()
                self.frame.quit()
                self.destroy()

    def destroy(self):
        self.root.destroy()  # close the current window
Beispiel #11
0
 def quitter(self):
     if askyesno(
             'Confirmation',
             'Voulez-vous vraiment fermer {0} ?'.format(self.nom_editeur)):
         Frame.quit(self)