Загрузка...

Первонах на python + vk_api + tkinter. Часть 2

Тема в разделе Социальные сети создана пользователем FBernardeschi 8 ноя 2022. 597 просмотров

  1. FBernardeschi
    FBernardeschi Автор темы 8 ноя 2022 Хорошо у нас в аду! 35 16 янв 2022
    [IMG]

    Во второй части мы будет усердно трудиться над тем, чтобы наш питоновский скрипт обрёл лицо
    а именно получил графическую оболочку (сокращённо GUI), в этом нам поможет
    модуль tkinter идущий в комплекте с питоном.

    Первую часть можно посмотреть ТУТ. И так приступим

    Создаём экземпляр класса Tk импортированного ранее из модуля tkiter сокращённо tk.
    Указываем геометрию окна и заголовок
    Python
    root = tk.Tk()

    root.geometry('280x550+350+50') # создаём геометрию окна
    root.title('TG: @listopadd') # не трогай бл..ть!!!

    Затем создаём два информационных лейбла, их мы поместим поверх окон ввода.
    Дальше идут два поля ввода, биндим каждый из них на нажатие правой кнопки мыши для корректной работы буфера (об этом говорилось в первой части)
    В последней строке вводим содержимое файла group.txt который мы так же создали в первой части.
    1.0 - координаты вставки, 1-ая строка, 0 индекс
    Python
    label = tk.Label(text='Введите логин и пароль через разделитель : ')
    label_2 = tk.Label(text='Введите список id групп')

    input_password = tk.Entry(width=35) # однострочный ввод
    input_password.bind("<ButtonPress-3>", touch_password) # биндим на нажатие правой кнопки мыши
    input_list_group = tk.Text(height=5) # многострочный ввод с высотой 5 символов
    input_list_group.bind("<ButtonPress-3>", touch_list_group) # биндим как и с первым вводом
    input_list_group.insert(1.0, group) # вставляем содержимое переменной group

    С полями текст и вложение проделываем то же самое
    Python
    label_text = tk.Label(text='Введите текст рассылки ')
    input_text = tk.Text(height=2)
    input_text.bind("<ButtonPress-3>", touch_text)

    label_photo = tk.Label(text='Вложение photo-123456_123456')
    input_photo = tk.Entry(width=35)
    input_photo.bind("<ButtonPress-3>", touch_photo)

    Чтобы кнопки были в ряд, мы создаём невидимую рамку и передаём её в атрибут master= каждого экземпляра кнопки.
    Во втором элементе мы добавили горизонтальный паддинг чтобы кнопки не слиплись
    Python
    frame_btn = tk.Frame() # создаём невидимую рамочку чтобы объеденить элементы
    btn_start = tk.Button(master=frame_btn, text='Старт', command=start_action) # создаём кнопку, первым параметром указываем на родителя т.е. на рамку
    btn_stop = tk.Button(master=frame_btn, text='Стоп', padx=4, command=stop_action) # то же самое но ещё указываем горизонтальный отступ в 4 пикселя с обеих сторон

    label_logs = tk.Label(text='****') # надпись ЛОГ
    input_logs = tk.Text(height=11, wrap=tk.WORD) # большое поле вывода лога

    Метод pack() располагает элементы по центру окна друг под другом, это очень удобно для небольших GUI вроде нашего.
    Указываем вертикальные паддинги чтобы элементы не слиплись, в кнопках указываем side LEFT, RIGHT, тем самым говорим к какой из сторон должен прижаться каждый из элементов внутри нашей невидимой рамки.
    В последней строке запускаем на прослушивание событий (нажатие кнопок) наш экземпляр класса tk.
    Python
    label.pack(pady=7)
    input_password.pack()

    label_2.pack(pady=7)
    input_list_group.pack(padx=6)

    label_text.pack(pady=7)
    input_text.pack(padx=6)

    label_photo.pack(pady=7)
    input_photo.pack()

    frame_btn.pack(pady=5)
    btn_start.pack(side=tk.LEFT, pady=5, padx=5, ipadx=8)
    btn_stop.pack(side=tk.RIGHT, pady=5, padx=5, ipadx=8)

    label_logs.pack(pady=7)
    input_logs.pack(padx=6)

    root.mainloop()
    Делаем пробный запуск =)
    3... 2... 1... Поехали!!!!

    [IMG]

    Всё работает! Для большей эффективности вы можете
    выставить задержки по собственному желанию.​
    Весь проект доступен по ссылке на гитхаб.

    Всем годного трафика и профитов =))​

     
    Этот материал оказался полезным?
    Вы можете отблагодарить автора темы путем перевода средств на баланс
    Отблагодарить автора
  2. genii78
    genii78 20 ноя 2022 60 23 июл 2019
    Что то время последний записи не верное показывает у меня )
     
    1. Посмотреть предыдущие комментарии (1)
    2. FBernardeschi Автор темы
      genii78, там наверно проблемы с часовыми поясами
    3. FBernardeschi Автор темы
      genii78, только что проверил, всё нормально

      [IMG]
Загрузка...
Top