Ответы пользователя по тегу Python
  • Как добавить данные из message.text в array telebot?

    Big_Trouble
    @Big_Trouble
    Программист недосамоучка
    Как добавить данные из message.text в array telebot?

    Просто
    qq.append(message.text)
    keyboard1 = telebot.types.ReplyKeyboardMarkup(True,True)
    keyboard1.row(f"{day[0]}",f"{day[1]}",f"{day[2]}")
    keyboard1.row(f"{day[3]}",f"{day[4]}",f"{day[5]}")
    keyboard1.row("добавить инфо")
    qq = []
    
    @bot.message_handler(commands=['start'])
    def start_message(message):
             bot.send_message(message.chat.id, 'Which day you need' , reply_markup=keyboard1)
    
    @bot.message_handler(content_types=['text'])
    def send_text(message):
         if message.text == f"{day[0]}":
              bot.send_message(message.chat.id, "some text")
         elif message.text == 'добавить инфо':
              bot.register_next_step_handler(message, infoAdding)
    #если message.text == добавить инфо - мы переходим к функции infoAdding, message - #обязательный параметр, в нем храниться вся информация о сообщении
    #(имя пользователя который его прислал, текст сообщения, id и тд..)
    def infoAdding(message):
        bot.send_message(message.chat.id, "Введите информацию")
        bot.register_next_step_handler(msg, result)
        #Здесь, в  infoAdding - пользователь вводит нужную информацию, 
        #чтобы её получить нам нужно перейти к другой в функции
        # в нашем случае result но может быть любая другая. 
        # Тогда в функции result придет сообщение(message) с текстом который ввёл пользователь
    def result(message):
        qq.append(message.text)
        bot.send_message(message.chat.id, qq[0])
        #Здесь мы сохраняем значение message.text в наш массив qq
        #И бот отправляет нам первый элемент списка qq(для наглядности, что message.text добавлено в массив)
    Ответ написан
    Комментировать
  • Почему не работает if else внутри в if bot telegram?

    Big_Trouble
    @Big_Trouble
    Программист недосамоучка
    Почему не работает if else внутри в if bot telegram?

    Потому что здесь так нельзя. Если коротко: ты нажимаешь выбрать группу, в функцию send_text приходить message.text с номером группы но после того как ты нажимаешь выбрать день - новый message не приходит, а и бот проверяет условие if message.text == f"{uni_gr[0]}":...

    Для этого есть специальный объект bot.register_next_step_handler(message, next_step)

    P.S Ну а вообще для каждой группы и дня прописывать блок условий - это как то глупо, представь если тебе захочется добавить еще 1-2 группы - это +еще 20 строчек кода. Лучше создать базу данных и тогда все эти блоки с условиями можно будет уложить в несколько строчек.

    P.P.S Мне уже кажется что моя задача на этом сайте просто скидывать людям ссылку на эту страницу
    Ответ написан
    1 комментарий
  • Как закруглить края кнопки tkinter на Python?

    Big_Trouble
    @Big_Trouble
    Программист недосамоучка
    По умолчанию в Tkinter нельзя создать Rounded Button(нет такой опции), но можно наложить на готовую кнопку изображение.
    1. Создаем в графическом редакторе изображение.
    2. Переписываем код ниже.
    3. Profit
    from tkinter import *
    root = Tk()
    
    loadimage = PhotoImage(file="image.png")
    roundedbutton = Button(root, image=loadimage) 
    roundedbutton["border"] = "0" # Обязательно убираем border!!
    roundedbutton.pack()
    root.mainloop()
    Ответ написан
    Комментировать