Контакты

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (16)

Лучшие ответы пользователя

Все ответы (19)
  • Я не могу понять в чем проблема в моём коде?

    @DollaR84
    У вас неправильно написаны конструкторы классов.
    У всех классов методы:
    _init_
    надо заменить на:
    __init__
    Разница в том, что там по два символа подчеркивания и спереди слова и сзади.
    И у методов __lt__ и __gt__ тоже самое.
    У всех служебных методов не один символ подчеркивания спереди и сзади, а по два символа.
    Да, кстати, и метод __lt__ правильно писать с буквой "l", а не __it__.
    Короче, просто много синтаксических ошибок от невнимательности.
    Да и еще, метод __repr__ тоже пишется по два символа подчеркивания с двух сторон. И плюс код в этом методе нерабочий, с ошибками, но то уже другой вопрос, думаю там сами разберетесь по трейсбеку.
    Ответ написан
  • Pygame. Как сделать округлые углы у прямоугольника?

    @DollaR84
    можно ли рамки и заливку прямоугольника сделать разными цветами, если да, то как?

    Тут все просто, конструктор прямоугольника имеет вид:
    pygame.draw.rect(surface, color, (x1, y1, size_x, size_y), width)
    То, что вас интересует, кроется в последнем параметре width.
    Если он задан то рисуется рамка прямоугольника заданной ширины, если его не задать, то рисуется прямоугольник с заливкой.
    Например, чтобы нарисовать прямоугольник, у которого рамка и заливка будут разных цветов, надо нарисовать два прямоугольника:
    pygame.draw.rect(surface, color1, (x1, y1, size_x, size_y))
    pygame.draw.rect(surface, color2, (x1, y1, size_x, size_y), width)


    С закругленными углами сложнее.
    Думаю там нужна работа с масками.
    Ответ написан
  • Как правильно упаковать .py в .exe?

    @DollaR84
    Ну судя по ошибке - telebot не может найти файл сертификата SSL.
    Дело все в том, что при запуске exe, созданного pyinstaller, сначала все содержимое распаковывается во временную папку, а затем запускается из нее, соответственно путь другой.
    Поэтому что можно сделать в вашем случае:
    файл SSL добавить в упаковку pyinstaller, с помощью опции --add-data. Пример:
    pyinstaller -F --add-data ssl;. main.py
    Где:
    ssl - файл сертификата;
    . - точка означает текущий каталог, это если файл сертификата лежит в корне со скриптом.

    Затем в самом скрипте надо добавить следующий код:
    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)

    Затем в том коде, где вы передаете данный файл боту, надо задавать его через данную функцию.
    Ответ написан
  • Как решить следующую проблему с созданием 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):
    Ответ написан
  • Почему не появляется текст на экране pygame?

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