Задать вопрос
  • Как поменять цвет Titlebar в Tkinte?

    Гектор Синхром, Tkinter основан на Tk, который использует родные элементы управления операционной системы для отрисовки окон и их элементов. Это значит, что стандартный заголовок окна и рамка управляются самой операционной системой, а не Tkinter. Поэтому, если вас не устраивают те варианты, которые предоставляют темы - единственный путь - ваш второй вариант.
    Написано
  • Как поменять цвет Titlebar в Tkinte?

    если вы про главное окно - то можно менять тему
    Написано
  • Как мне сделать так, чтобы после клика мышкой значение переменно tovar менялось?

    откуда этот ископаемый код? Так писали примерно 20 лет назад. Думаю на ваш вопрос вам вряд ли ответят - ваш код лютая дичь.
    Написано
  • Tkinter. Как растянуть Form на весь Canvas?

    Гектор Синхром, уберите высоту
    canvas.itemconfig(frame_id, width=event.width-2*padx)
    Написано
  • Tkinter. Как растянуть Form на весь Canvas?

    Гектор Синхром, что то вроде этого
    import customtkinter as ctk
    
    app = ctk.CTk()
    
    def resize_frame(event):
        # Растягиваем frame на всю площадь canvas
        canvas.itemconfig(frame_id, width=event.width-2*padx, height=event.height*2)
    
    # Ширина и высота отступов
    padx =20
    pady = 20
    
    # Canvas
    canvas = ctk.CTkCanvas(app, bg="blue", highlightthickness=0)
    canvas.pack(fill='both', expand=True, padx=padx, pady=pady)
    
    # Функция привязки изменения размера Canvas
    canvas.bind('<Configure>', resize_frame)
    
    main_frame = ctk.CTkFrame(app, bg_color='white')
    frame_id = canvas.create_window((20, 20), window=main_frame, anchor='nw')
    
    scrollbar = ctk.CTkScrollbar(app, command=canvas.yview)
    canvas.configure(yscrollcommand=scrollbar.set)
    scrollbar.place(relx=1, rely=0, relheight=1, anchor='ne')
    # наполнение
    for i in range(40):
        ctk.CTkButton(main_frame, text='Click Me').pack(pady=10)
    
    canvas.update_idletasks()
    canvas.configure(scrollregion=canvas.bbox("all"))
    app.mainloop()
    Написано
  • Как найти работу после курсов по фронтенду?

    Chernikova_EV, мой вам совет - научитесь врать. Сейчас врут абсолютно все: врет правительство, врут юристы, врут банки, врут работодатели, врет телевидение. Честному человеку сейчас нигде нет места. Честные люди сейчас вылетают в трубу. Поэтому придумайте пару фирм "Рога и копыта" в которых вы работали и занимались конкретными вещами и впишите это в резюме. Только хорошенько всё продумайте. Тогда у вас будет шанс попасть на собеседование, а уж там все будет зависеть от вашей находчивости.
    Иначе, шансов без опыта - практически нету.
    Написано
  • Не применяются стили scss. Что делать?

    Ivan72929, есть еще такая штука - кэш называется. Браузер запоминает страницу и отображает запомненную версию, даже если вы уже что-то изменили на странице. ctrl+F5 позволяет перезагрузить страницу принудительно. Никогда не забывайте про кеширование и в режиме разработки всегда старайтесь настроить всё так, чтобы избежать кеширования.
    Написано
  • Не применяются стили scss. Что делать?

    открываешь инструменты разработчика в браузере и смотришь в чем проблема. Какие файлы подключаются, какие пути, какие правила применяются к элементам и откуда они.
    Написано
  • Как поменять свойство одного ребенка через другого?

    Hidden Fronter, тогда только через JS:
    <style>
    .hovered-h2 {
      color: blue; /* Пример изменения цвета на синий */
    }
    </style>
    
    <div>
        <h2 id="textElement">GG</h2>
        <img id="imageElement" src="test.png">
    </div>
    
    <script>
    // JavaScript для изменения цвета
    document.getElementById('imageElement').addEventListener('mouseover', () => {
        document.getElementById('textElement').classList.add('hovered-h2');
    });
    
    document.getElementById('imageElement').addEventListener('mouseout', () => {
        document.getElementById('textElement').classList.remove('hovered-h2');
    });
    </script>
    Написано
  • Не запускается gulp,пишет: styles errored after 144ms. Как лечить такое?

    Ivan72929, да это похоже на ошибку синтаксиса в scss-файле
    Написано
  • Не запускается gulp,пишет: styles errored after 144ms. Как лечить такое?

    Ivan72929, так замени эту строку в Gulpfile.js:
    .pipe(scss({ outputStyle: 'compressed' }))
    на эту:
    .pipe(sass({ outputStyle: 'compressed' }))
    Написано
  • Как упростить запрос к БД?

    Ярослав Иванов, если я вас правильно понял, попробуйте так:
    const data = await this._db.collection('counters').aggregate([
      { $match: { "objectId": { $exists: true } } },
      { $project: { 
          _id: 0, // Исключаем поле _id из вывода
          last: "$objectId.last", // Получаем значение last из объекта objectId и кладем в поле last
          start: "$objectId.start", // Аналогично для start
          end: "$objectId.end" // Аналогично для end
        } 
      }
    ]).toArray();
    
    // data будет массивом документов, и каждый документ будет содержать только поля last, start и end
    Написано
  • Как упростить запрос к БД?

    Ярослав Иванов, В MongoDB каждому документу по умолчанию присваивается поле _id, которое представляет уникальный идентификатор документа. Когда вы выполняете запрос к базе данных для получения документов, это поле _id включается в возвращаемые результаты по умолчанию.
    В рамках проекции запроса (то есть во втором аргументе метода findOne, который задаёт, какие поля должны быть возвращены), указание { _id: 0 } означает, что поле _id не должно быть включено в результаты запроса. Значение 0 здесь служит индикатором того, что поле не следует включать в выходные данные.

    Вкратце, при использовании { projection: { _id: 0 } } вы говорите MongoDB вернуть все поля документа, кроме _id.
    Написано
  • Как сделать выборку из двух коллекций в MongoDB?

    Станислав, Давайте разберем, как интегрировать ваш $match запрос внутри конструкции $pipeline для $lookup. Запрос внутри $pipeline должен быть аналогичен запросу обычного $match, только с использованием $expr для сопоставления полей документов из разных коллекций.
    В вашем случае, сначала добавим запрос $match как часть pipeline в $lookup, сохраняя ссылку на _id изначального документа с помощью переменной $$id, которую мы определяем через let. В этом пайплайне каждый $match будет сравнивать значения поля uid в коллекции colors с _id документа из исходной коллекции. Также вы добавите остальные условия фильтрации для полей rgb.r, rgb.g, rgb.b и prevail.

    Примерно так:
    Collect.aggregate([
      { $match: { $text: { "$search": "слово" } } },
      { $lookup: {
          from: "colors",
          let: { id: "$_id" }, // Определяем переменную id для использования внутри $lookup
          pipeline: [
            { $match: {
              $expr: { $and: [
                { $eq: ["$uid", "$$id"] }, // Сравниваем uid с id из основного документа
                { $gte: ["$rgb.r", 147] },  // Диапазон значений для красного цвета
                { $lte: ["$rgb.r", 167] },
                { $gte: ["$rgb.g", 136] },  // Зеленого
                { $lte: ["$rgb.g", 156] },
                { $gte: ["$rgb.b", 107] },  // Синего
                { $lte: ["$rgb.b", 127] },
                { $lte: ["$prevail", 1] }   // Условие для поля prevail
              ]}
            }}
          ],
          as: "colors"
        }
      },
      { $match: { "colors": { $ne: [] } } }, // Фильтрация документов с ненулевым массивом colors
      { $sort: { "createdAt": -1 } },
      { $limit: 10 }
    ])

    В этом подзапросе $lookup с $pipeline мы выполняем $match с фильтрами, используя $expr для сопоставления и фильтрации документов в соответствии с вашими условиями. Это позволяет $lookup не только соединять данные из двух коллекций, но и фильтровать их непосредственно во время соединения. Таким образом, в массив colors для каждого документа в итоге попадут только те данные из коллекции colors, которые удовлетворяют всем вашим фильтрам, и вам не придется использовать $unwind.
    Написано
  • Как сделать выборку из двух коллекций в MongoDB?

    При использовании $lookup вместе с $unwind, MongoDB оптимизирует агрегацию, объединяя эти два этапа, чтобы улучшить производительность. Однако, если вы хотите избежать использования $unwind после $lookup, вы можете попробовать фильтровать документы непосредственно внутри $lookup с использованием конструкции $pipeline, которая была добавлена в MongoDB версии 3.6.

    Пример кода, который выполняет фильтрацию внутри $lookup:
    Collect.aggregate([
     { $match: { $text: {"$search": "слово"}} },
     { $lookup: {
         from: "colors",
         let: { id: "$_id" },
         pipeline: [
           { $match:
             { $expr:
               { $and:
                 [
                   { $eq: ["$uid","$$id"] },
                   { $eq: ["$color", "red"] }
                 ]
               }
             }
           },
           { $limit: 1 } // Ограничиваем до одного документа, если нам не нужны все цвета
         ],
         as: "colors"
       }
     },
     { $match: { "colors.0": {$exists: true} } }, // Проверить, что результат не пустой
     { $sort: {createdAt: -1} },
     { $skip:0 },
     { $limit: 10 }
    ])
    Написано
  • Какой хоткей для выделения одинакового кода в WebStorm?

    держи еще до кучи:
    Alt + F7 найти случаи использования по проекту
    Ctrl + F7 найти случаи использования по файлу
    Ctrl + Shift + F7 убрать\показать подсветку найденных совпадений
    Ctrl + Alt + F7 показать все случаи вхождения по проекту
    Написано
  • Возможно ли при автокомплите сначала показывать кастомные типы и эвенты, а только потом встроенные?

    godsplane, в таком случае вам нужно искать специальное расширение для vscode. c поддержкой нужного языка.
    Написано
  • Как перезаписать переменную для добавления через InnerHTML?

    WhiteHat, понятно, вы хотите получить реактивность, не используя фреймворки. Тогда добро пожаловать в мир велосипедов! Смотрите документацию на объект Proxy - с его помощью создаете наблюдаемый объект, перехватываете события модификации и пишите свою логику.
    Написано