Ответы пользователя по тегу Python
  • Python. Pyautogui.hotkey ("Ctrl", "с") не работает с русской раскладкой клавиатуры?

    PolarOneBear
    @PolarOneBear
    Искал ответы и нашел, ответил на такой же вопрос в другом посте - ответ
    Ответ написан
    Комментировать
  • Python Tkinter Ctl+V Ctr+C Ctrl+X для поля Text?

    PolarOneBear
    @PolarOneBear
    Проблема в раскладке клавиатуры. Это всё работает (или должно) если раскладка английская. При русской раскладке - буквы другие.

    И вроде бы есть решение:
    root.event_add('<<Paste>>', '<Control-igrave>')
    root.event_add("<<Copy>>", "<Control-ntilde>")


    Но в текущем tkinter оно что-то не работает...

    Вот рабочий способ, проверено:

    def keypress(e):
        if e.keycode == 86 and e.keysym != 'v':
            cmd_paste()
        elif e.keycode == 67 and e.keysym != 'c':
            cmd_copy()
        elif e.keycode == 88 and e.keysym != 'x':
            cmd_cut()
    root.bind("<Control-KeyPress>", keypress)


    Ну или как я делал:
    class MyApp:
        def __init__(self, root):
    
            root.bind("<Control-KeyPress>", self.keypress)
            # всякое разное
    
        def keypress(self, e):
            # Обработчик комбинаций клавиш для вставки, копирования и вырезания
            if e.keycode == 86 and e.keysym != 'v':
                self.cmd_paste()
            elif e.keycode == 67 and e.keysym != 'c':
                self.cmd_copy()
            elif e.keycode == 88 and e.keysym != 'x':
                self.cmd_cut()
    
        def cmd_copy(self):
            # Обработчик команды копирования
            widget = self.root.focus_get()
            if isinstance(widget, ttk.Entry) or isinstance(widget, tk.Text):
                widget.event_generate("<<Copy>>")
    
        def cmd_cut(self):
            # Обработчик команды вырезания
            widget = self.root.focus_get()
            if isinstance(widget, ttk.Entry) or isinstance(widget, tk.Text):
                widget.event_generate("<<Cut>>")
    
        def cmd_paste(self):
            # Обработчик команды вставки
            widget = self.root.focus_get()
            if isinstance(widget, ttk.Entry) or isinstance(widget, tk.Text):
                widget.event_generate("<<Paste>>")


    Ссылка на первоисточник

    P.S.: Так же обратите внимание на следующий момент, работает в полях ttk.Entry
    Если же вы используете tk.Entry - работать не будет.
    Ответ написан
  • Почему не удаётся найти путь?

    PolarOneBear
    @PolarOneBear
    Проблема может быть тут
    AudioSegment.converter = f"{os.getcwd()}\\ffmpeg.exe"
    AudioSegment.ffprobe = f"{os.getcwd()}\\ffprobe.exe"


    ffmpeg и ffprobe точно установлены? Попробуйте указать абсолютный путь.

    opus_file выглядит нормально
    И проверьте актуальность pydub, может обновить необходимо.

    pydub не может найти ffmpeg и ffprobe
    Ответ написан
    2 комментария