Функция вызова горячих клавиш клавиатуры - копирование и вставка выполняется медленно - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь нажать клавишу клавиатуры, которая берет выделенный текст, копирует его и использует переменную для создания штрих-кода. У меня проблема в том, что буфер обмена работает медленно? и я получаю смешанные результаты. Копирование из блокнота кажется нормальным, но из более медленного источника (пример: Google Таблицы), похоже, не удается захватить текст вовремя до запуска остальной программы.

Я пробовал спать (что, кажется, решить смешанные результаты). Однако когда я это делаю, горячая клавиша подавления не работает, а затем записывает ее (`) поверх первоначально выбранного текста.

Мой код:

import keyboard
import clipboard

keyboard.add_hotkey('`', lambda: cpyPstScut() , suppress=True)


def cpyPstScut():
    keyboard.press_and_release('ctrl+c')

    print('Spot 1 = ' + clipboard.paste())

    bcodeTxt = clipboard.paste()
    createBCode(bcodeTxt)

def createBCode(bCodeText):

    from PIL import Image, ImageDraw, ImageFont

    background = Image.new("L",(1050,342),"white")

    print('Spot 2 = ' + clipboard.paste())    

    font_type = ImageFont.truetype('arial.ttf',48)
    draw = ImageDraw.Draw(background)

    draw.text((40,40), text = bCodeText, fill ='black', font = font_type)

    from datetime import date
    lblNow = str(date.today())
    draw.text((40,100), text = lblNow, fill = 'black', font = font_type)

    print('Spot 3 = ' + clipboard.paste()) 

    #create and add barcode
    from barcode import Code128
    from barcode.writer import ImageWriter

    writeBcode = Code128(bCodeText, writer=ImageWriter())
    writeBcode.save('bCodeImg')

    print('Spot 4 = ' + clipboard.paste()) 

    bcodeImg = Image.open('bCodeImg.png', 'r')
    background.paste(bcodeImg,(20,170))

    print('Spot 5 = ' + clipboard.paste())     

    background.save('bcodeLabel.png')
    background.show()

    print('Spot 6 = ' + clipboard.paste()) 
...