Ответы пользователя по тегу Python
  • Как добавить свой голосовой пакет в Windows Text To Speech?

    @DollaR84
    Впишу ссылку на свой ответ из комментария сюда:
    Как поменять синтезатор речи?
    Может еще кому пригодится
    Ответ написан
    Комментировать
  • Как решить следующую проблему с созданием exe файла из ру и ui файлов?

    @DollaR84
    При создании exe файла, такой путь:
    os.system('python main_gui(2).py')

    вообще не годится, он же будет запускаться только на компьютере с установленным python.
    а насчет:
    до создания .exe всё работает прекрасно, а когда использую import main_gui(2) - вроде бы импортирует всё, но соответствующий интерфейс не открывает?

    если вы используете pyinstaller для создания exe с флагом -F для создания одного exe файла, с запакованным в него содержимым, то для добавления прочих данных, таких как ui файлы, надо добавить их в параметры pyinstaller. Используется параметр --add-data, и состоит из двух значений, имени добавляемого файла и пути к нему, разделяемые знаком ";".например, если файл называется gui1.ui и лежит в той же директории рядом со скриптом, то параметры pyinstaller будут выглядеть примерно так:
    pyinstaller -F --add-data gui1.ui;. start.py
    Точка означает текущий каталог.

    UPDATE
    Вам надо в файл, загружающий данные ui файлы добавить следующий код:
    import os
    import sys
    def resource_path(relative_path):
        """ Get absolute path to resource, works for dev and for PyInstaller """
        if getattr(sys, 'frozen', False):
            base_path = sys._MEIPASS
        else:
            base_path = os.getcwd()
        return os.path.join(base_path, relative_path)

    Дальше надо производить поиск файлов через данную функцию.
    Например, в вашем случае следующим образом:
    main_window = uic.loadUiType(resource_path('gui.ui')))[0]
    class Window(QMainWindow, main_window):
    Ответ написан
    5 комментариев
  • Как проверить существование кнопки в wxpython?

    @DollaR84
    Можно обернуть операции с кнопкой в блок try except и проверять на AttributeError.
    Например:
    try:
    config.Btn.< ... >
    except AttributeError:
    < ... >
    else:
    < ... >
    Ответ написан
    Комментировать
  • Как поменять синтезатор речи?

    @DollaR84
    Работал с синтезатором SAPI напрямую без дополнительных библиотек. Вот короткий список необходимого кода для примера, построчно откомментированого:

    import win32com.client
    # получаем COM объект синтезатора
    speaker = win32com.client.Dispatch("Sapi.SpVoice")
    # получаем список всех доступных голосов в системе
    voices = speaker.GetVoices()
    # тут создаю список названий голосов
    voices_names = [voice.GetDescription() for voice in voices]
    # устанавливаем необходимый синтезатор из списка доступных. Для примера первый с индексом 0
    speaker.Voice = voices[0]
    # устанавливаем скорость произношения от -10 до 10
    speaker.Rate = 6
    # устанавливаем громкость голоса от 0 до 100
    speaker.Volume = 100
    # произносим фразу
    speaker.Speak('Привет.')

    В своей статье описывал создание модуля более подробно, ну кусок работы с SAPI приведен оттуда.
    Ответ написан
    Комментировать
  • Почему не появляется текст на экране pygame?

    @DollaR84
    Проблема в инициализации.
    Для конструктора pygame.font.Font надо передавать имя файла шрифта.
    Если же вы хотите использовать системные шрифты, то надо использовать другой конструктор. Пример:
    f1 = pygame.font.SysFont('arial', 36)
    В данном случае я указал шрифт Arial, можете указать любой присутствующий в вашей системе.
    Ну и конечно вначале у вас должна быть инициализация системы шрифтов:
    pygame.font.init()
    Ответ написан
    1 комментарий