class Grapfics(): def __init__(self): self.aut = '' self.root = Tk() self.root.state('zoomed') self.root.geometry( str(self.root.winfo_screenwidth() - 200) + 'x' + str(self.root.winfo_screenheight() - 200)) self.pb = ttk.Progressbar(self.root, orient=HORIZONTAL, length=200, mode='determinate') self.menu = Menu(self.root) self.menu.add_command(label="О программе", command=self.prog_menu) self.root.config(menu=self.menu) self.l_1 = Label(self.root, text="Авторизация в vk") self.l_2 = Label(self.root, text="Формат списка") self.l_3 = Label(self.root, text="Отчет") self.l_4 = Label(self.root, text="Вы не авторизованы") self.l_5 = Label(self.root, text="") self.en_1 = Entry(self.root) self.en_2 = Entry(self.root) self.pos_1 = IntVar() self.pos_1.set(0) self.rb_1 = Radiobutton( self.root, text="1. http://vk.com/groupID http://vk.com/userID", variable=self.pos_1, value=0) self.rb_2 = Radiobutton( self.root, text="1. http://vk.com/userID http://vk.com/groupID", variable=self.pos_1, value=1) pos_2 = IntVar() pos_2.set(0) self.rb_3 = Radiobutton(self.root, text="По участникам", variable=pos_2, value=0) self.rb_4 = Radiobutton(self.root, text="По группам", variable=pos_2, value=1) self.frame_1 = Frame(self.root) self.tex = Text(self.frame_1, width=60, height=35, font="Verdana 6", wrap=WORD) self.scr = Scrollbar(self.frame_1, command=self.tex.yview) self.tex.configure(yscrollcommand=self.scr.set) self.splitter = PanedWindow(self.root, orient=HORIZONTAL, height=500, width=800) self.frame_2 = Frame(self.splitter, width='20') self.table = Table(self.frame_2) self.table.pack(expand=YES, fill=BOTH) self.splitter.add(self.frame_2) self.scr.pack(side='right', fill='y') self.frame_1.place(x='20', y='205') self.tex.pack(fill='both') if os.path.exists('vk_config.v2.json'): with open('vk_config.v2.json', 'r') as t: q = json.load(t) for i in q.keys(): log = i tok = str(q).split("'access_token': '")[1].split("'")[0] self.vk = vk_api.VkApi(login=log, token=tok) self.vk.auth(token_only=True) self.l_4['text'] = self.vk.method( 'users.get')[0]['first_name'] + '\n' + self.vk.method( 'users.get')[0]['last_name'] self.b_1 = Button(self.root, text="Войти", command=self.au) self.b_2 = Button(self.root, text="Проверить вступления", width=20, command=self.k) self.b_3 = Button(self.root, text="Отчет", width=20, command=lambda: Otch().start()) self.b_4 = Button(self.root, text="Выход", command=self.ex) self.splitter.place(x='450', y='205') self.en_1.place(x='20', y='55') self.en_2.place(x='20', y='80') self.b_1.place(x='170', y='50') self.b_2.place(x='350', y='140') self.b_3.place(x='350', y='170') self.b_4.place(x='170', y='80') self.l_1.place(x='20', y='30') self.l_2.place(x='20', y='120') #self.l_3.place(x = '550', y = '120') self.l_4.place(x='220', y='55') self.rb_1.place(x='20', y='140') self.rb_2.place(x='20', y='160') #self.rb_3.place(x = '550', y = '140') #self.rb_4.place(x = '550', y = '160') self.pb.place(x='20', y='650') self.l_5.place(x='225', y='650') self.root.mainloop() def k(self): self.l_5['text'] = "" self.table.destroy() self.table = Table(self.frame_2) self.table.pack(expand=YES, fill=BOTH) if os.path.exists('vk_config.v2.json'): if requests.get( 'http://3.12.164.15/table/%s' % str(self.vk.method('users.get')[0]['id'])).text == 'True': x = threading.Thread(target=st, args=(self.pos_1.get(), self.tex.get('1.0', 'end'), self.vk, self.table, self.l_5, self.pb)) x.start() else: messagebox.showinfo( "Ошибка!", "К вашему аккаунту не привязан ключ для работы программы\nОбратитесь по ссылке: https://vk.com/id124569304" ) else: if requests.get( 'http://3.12.164.15/table/%s' % str(self.aut.vk_session.method('users.get')[0]['id']) ).text == 'True': x = threading.Thread(target=st, args=(self.pos_1.get(), self.tex.get('1.0', 'end'), self.aut.vk_session, self.table, self.l_5, self.pb)) x.start() else: messagebox.showinfo( "Ошибка!", "К вашему аккаунту не привязан ключ для работы программы\nОбратитесь по ссылке: https://vk.com/id124569304" ) def ex(self): if os.path.exists('vk_config.v2.json'): os.remove( os.path.join(os.path.abspath(os.path.dirname(__file__)), 'vk_config.v2.json')) self.l_4['text'] = "Вы не аторизованы" def au(self): if not os.path.exists('vk_config.v2.json'): self.aut = Authentication() self.aut.main(self.en_1.get(), self.en_2.get(), self.l_4) else: messagebox.showinfo( "Ошибка!", "Для повторной авторизации нужно выйти из нынешнего аккаунта") def prog_menu(self): self.pr = Tk() self.pr.geometry('500x150') self.l1_1 = Label( self.pr, text= "Программа сделана для осуществление проверки подписки пользователей\n\n Разработчик программы:\nvk - https://vk.com/id310539944\nПочта - [email protected]" ) self.l1_1.place(x='20', y='20') self.pr.mainloop()
menu2.add_command(label="Help") menu_area.add_cascade(label="Help", menu=menu2) label_frame = LabelFrame(win, text='label frame') label_frame.place(x=0, y=10) lbl_name = Label(label_frame, text="성명: ") lbl_phone = Label(label_frame, text="전화번호: ") lbl_email = Label(label_frame, text="이메일: ") entry_name = Entry(label_frame) entry_phone = Entry(label_frame) entry_email = Entry(label_frame) lbl_name.grid(row=0, column=0) entry_name.grid(row=0, column=1, padx=5, pady=5) lbl_phone.grid(row=1, column=0) entry_phone.grid(row=1, column=1, padx=5, pady=5) lbl_email.grid(row=2, column=0) entry_email.grid(row=2, column=1, padx=5, pady=5) penedwindow = PanedWindow(relief="raised", bd=0) penedwindow.place(x=20, y=125) btn_ok = Button(penedwindow, text="확인") btn_cancel = Button(penedwindow, text="취소") penedwindow.add(btn_ok) penedwindow.add(btn_cancel) if __name__ == '__main__': win.mainloop()