• Python Kivy - как сделать кнопку с текстом и иконкой?

    @mcrack Автор вопроса
    Всем привет, как обычно если сам не найдёшь ответ, ни кто не найдёт.

    Придумал более менее интересный способ вставки шрифтовой иконки от Font Awesome в кнопку или в любое Label поле.

    KV файл:
    <Root>:
        BoxLayout:
            ButtonIcon:
                icon: "\uf2c2"
                ltext: "Text left"
                rtext: "Text right"
                text: root.iconText(self.icon, self.ltext, self.rtext)
                font_size: 25
                padding: 0.5, 0
    
    <ButtonIcon@Button>:
        markup: True
        ltext: ""
        rtext: ""


    main.py файл:
    from kivy.app import App
    from kivy.uix.boxlayout import BoxLayout
    
    class Root(BoxLayout):
        def iconText(self, icon, ltext='', rtext=''):
            Ltext = ''
            if (ltext != ''):
                Ltext = "[font=Roboto]" + ltext + "[/font]  "
            Rtext = ''
            if (rtext != ''):
                Rtext = "  [font=Roboto]" + rtext + "[/font]"
            fontIcon = "[font=fonts/fontawesome-webfont.ttf]" + icon + "[/font]"
            text = Ltext + fontIcon + Rtext
            return text
    
    class MyApp(App):
        def build(self):
            return Root()
    
    if __name__ == "__main__":
        MyApp().run()


    Нужно создать папку fonts и положить в него файл fontawesome-webfont.ttf с сайта Font Awesome.

    PS:
    Тут я использовал шрифты от версии 4.7.0, таким же способом можно прикрутить любые шрифтовые иконки

    *******************************
    Для более опытных:
    Если придумаете более удобный способ вывода иконок в кнопках, буду очень благодарен, если поделитесь своим способом.
    Ответ написан
  • Slick Slider как сделать несколько связанных слайдеров?

    @mcrack Автор вопроса
    Вот переделал в более удобный вид вариант слайдера Ивана Винокурова, который тут написал мне ответ. Всё проверил, работают независимо.

    $('.test-card').each(function(){
        /* Основной слайдер */
        $(this).find('.test-main-slider__list').slick({
          infinite: true,
          slidesToShow: 1,
          slidesToScroll: 1,
          arrows: false,
          autoplay: true,
          autoplaySpeed: 3000,
          asNavFor: $(this).find('.test-second-slider__list'),
          dots: true
        });
    
        /* Связанный слайдер */
        $(this).find('.test-second-slider__list').slick({
          infinite: true,
          slidesToShow: 1,
          slidesToScroll: 1,
          arrows: false,
          asNavFor: $(this).find('.test-main-slider__list'),
          dots: true
        });
      });
    Ответ написан
    Комментировать
  • Какой шаблонизатор использовать для html?

    @mcrack Автор вопроса
    Нашёл отличное решение, называется nunjucks, оно позволяет собрать много страниц с использованием кусочков кода, в каждый из кусочков можно передавать данные, можно создавать переменные и циклы и всё это потом генерирует отдельные html страницы.

    У кого встала такая-же задача, как у меня, можете посмотреть эту статью, думаю она вам очень поможет, единственное там чуть чуть gulpfile подправить надо, вместо синтаксиса gulp 3 исправить на gulp 4:
    https://ikfi.ru/article/nunjucks--html-na-diete
    Ответ написан
    Комментировать