Установить свойства виджета в PySide можно не только через соответствующие методы и конструктор класса. Можно их изменять с помощью метода setProperty по имени.
btn = QPushButton("Click Me")
btn.setProperty("flat", True)
Это аналогично вызову
btn.setFlat(True)
Если указать несуществующее свойство, то оно просто создается
btn.setProperty("btnType", "super")
Получить его значение можно методом .property(name)
btn_type = btn.property("btnType")
Когда это может быть полезно?
▫️Можно просто хранить какие то данные в виджете и потом их доставать обратно
widget = QWidget()
widget.setProperty('my_data', 123)
print(widget.property('my_data'))
▫️ Назначая эти свойства разным виджетам можно потом отличить виджеты во время итераци по ним. Например, найти все кнопки со свойством my_data="superbtn".
Но ведь вместо кастомного свойства можно использовать objectName, будет тот же результат.
Да, но y ObjectName есть ограничение - только строки.
▫️ Если нам потребуется не просто поиск а, например, сортировка по числу, то свойства позволяют нам это сделать. Поддерживается любой тип данных
widget.setProperty('my_data', {'Key': 'value'})
widget.setProperty('order', 1)
all_widgets.sort(key=w: w.property('order'))
Но ведь Python позволяет всё вышеперечисленное сделать простым созданием атрибута у объекта
widget.order = 1
widget.my_data = 123
Да, но я думаю что не надо объяснять почему не стоит так делать. К тому же, если у виджета нет свойства то метод .property(name) вернет None, а отсутствующий атрибут выбросит исключение.
▫️ Действительно полезное применение кастомным свойствам - контроль стилей. Здесь атрибутами не обойтись, нужны именно свойства.
Дело в том, что в селекторах стилей можно указывать конкретные свойства виджетов на которые следует назначать стиль.
Просто запустите этот код
from PySide2.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
widget = QWidget(minimumWidth=300)
layout = QVBoxLayout(widget)
btn1 = QPushButton("Action 1")
btn2 = QPushButton("Action 2")
btn3 = QPushButton("Action 3", flat=True)
layout.addWidget(btn1)
layout.addWidget(btn2)
layout.addWidget(btn3)
# добавим кастомное свойство одной кнопке
btn1.setProperty("btnType", "super")
# добавляем стили
widget.setStyleSheet(
"""
QPushButton[btnType="super"] {
background-color: yellow;
color: red;
}
QPushButton[flat="true"] {
color: yellow;
}
"""
)
widget.show()
app.exec_()
С помощью селектора мы избирательно назначили стили на конкретные кнопки.
Как получить список всех кастомный свойств?
Функция получения списка кастомных свойств отличается от получения дефолтных.
def print_widget_dyn_properties(widget):
for prop_name in widget.dynamicPropertyNames():
property_name = prop_name.data().decode()
property_value = widget.property(property_name)
print(f"{property_name}: {property_value}")
#tricks#qt
Draw-to-Decompose
Бывает такие моменты, когда нейронка нуууу вообще не слушается, и ты пытаешься найти различные костыли и обходы, чтобы получить желаемое. Тестируешь Draw-to-Edit, другие модельки, негативный промпт, просишь у GPT более подробно сформулировать твою сухую мысль — и всё равно нейронка говорит: «Слушай, иди поспи, я буду делать, как задумала, а то, что ты хочешь, нууу такое».
Вот с таким случаем я сегодня столкнулся, когда делал раскадровку для ролика на работе. В моём случае — это дочка и папа в машине, где папа должен смотреть в зеркало заднего вида, а дочка — смотреть мультики со спинки, сидя на заднем сидении в детском кресле. Понимаю, что вариантов миллион, и, возможно, именно у тебя бы получилось это сделать, но сроки и параллельные задачи сильно ограничивали мои эксперименты.
Но то, что не делается автоматически, можно сделать ручками, и я хочу поделиться своим способом, который придумал, чтобы решить эту задачу:
Nano-Banana очень хорошо интерпретирует идентичность объектов на картинке, и это можно использовать. Я просто просил вырезать объекты из общей картины и затем собрал свой вариант из этих же слоёв, добавив размытия и освещения.
Prompts:
Оставь девочку в детском кресле, всё остальное на картинке удали, чёрный изолированный слой
Удали девочку в детском кресле.
Оставь левое кресло, всё остальное удали, чёрный изолированный слой
Итого у меня получилось три слоя:=
1. Общая фотка без девочки.
2. Слой с девочкой.
3. Слой с пустым креслом.
В итоге собрал мастер-референс, от которого уже можно плясать с ракурсами.
😂 Этот способ не универсальный для всех задач, но раскрывает большое поле возможностей — будет полезно в трудных задачах где нейронка совсем не слушается, для создания параллакс эффектов, можно вырезать не только объекты, но и свет, отражения и тени, а так же вычиленять объекты целиком даже ту часть которая скрыта,например, объектами переднего плана Пользуйся.
#hints | AcidCrunch
Сегодня расскажу тебе про одну странную, но прикольную синергию Veo3 + Gemini + Midjourney, на которую я наткнулся случайно
Делал я тут для эфира обложку, где AcidCrunch сёрфит по цифровым волнам, хотелось, чтобы картинка была динамичная и чтобы он проплывал через водяную трубу.
Сначала Mj. Закинул картинку, пробовал и своими словами, и через бота — но вода выходила как пластик, а движения вялые.
Потом Veo3. Там с динамикой и физикой было уже повеселее, но стилизация мне вообще не зашла.
Тут вспомнил про Gemini. Он же может разобрать видео и накидать промт. Я закинул туда рендер из Veo3 и попросил сохранить динамику и физику воды, но вписать серфера в трубу. Он выдал 3 вариантf промта.
Вернулся в Midjourney с новым промтом — и получил что хотел: стилизация, качество, формат.
Может, совпадение, но факт: Gemini, подкормившись видосом из Veo3, смог придумать промт, который вытащил рендер в Mj на новый уровень.
Короче, лайфхак: если вообще не получается добиться нужного эффекта, попробуй такой кривой, но рабочий манёвр.
😂 И не забывай репостить ага)
#hints | AcidCrunch
📚 Наткнулся на «22 панели, которые ВСЕГДА работают» от легендарного художника Уолли Вуда.
Это такой гайд, как сделать даже самые скучные сцены с болтовнёй персонажей визуально интересными.
✍️ Сам Вуд шутил:
«Когда тупой сценарист заставляет унылых героев сидеть и болтать страницу за страницей — эти 22 варианта спасают!»
🎨 Идеально подходит, Для раскадровки для дальнейшей истории которую можно сгенерить и анимировать)
👇 Подпишись, сохрани и кидай друзьям
#hints | AcidCrunch
Фишка: Триггер символ для бота в ChatGpt
Сегодня хочу поделиться фишкой, которую сам юзаю в ChatGpt. Я пишу обычно криво, ошибок — тьма, поэтому сделал себе «теневого клона» в ChatGPT. Он берёт мои мысли и переписывает их так, чтобы это выглядело нормально для людей, но всё равно оставалось моим стилем.
Как это работает
Чтобы бот писал как ты — дай ему примеры: переписки, посты с канала, заметки. Он не идеально скопирует, но паттерны поймёт. Особенно круто это работает в GPT-5.
Фишка
В инструкциях можно зашить «символ-триггер». Например:
— Если тебе скидывают текст и в конце стоит символ *, ты переписываешь его в своём стиле — так, как писал бы сам, с учётом твоего характера и на основе постов из загруженных файлов AcidCrunch.
В итоге, когда я кидаю свой кривой текст и добиваю его символом *, бот сам превращает его в аккуратный пост. Мне не надо расписывать кучу инструкций каждый раз — всё завязано на один знак.
😣 Хочешь — могу выложить инструкцию своего бота, который заточен под мой канал. А ты уже сможешь заревёрсинженирить его под себя, если надо).
Напиши в комментариях и влепи реакцию — если соберётся 30, выложу в следующих постах. Да, это байт на активность) .
😱 И делись постом с другом фишка реально полезная
#hints#chatgpt | AcidCrunch
Хочу с тобой поделиться фишкой. Она вроде на поверхности, но не каждый до неё додумается.
Агент лучше всего использовать для поиска информации. Он выгружает результаты в чат → затем ты просишь Deep Research или GPT-5 Thinking / Pro обработать их.
Так получается максимально точный и полезный вывод без лишних шагов.
😂И не забывай репостить ага)
#chatgpt#hints | AcidCrunch
🎭 Midjourney v7 чувствует язык — буквально.
Решил протестировать, как влияет язык промпта на визуальный вайб. Взял один и тот же текст:
"мужчина идёт по рынку в центре города" — и просто перевёл его. Всё. Без стилей, без уточнений.
Результат — будто три разных фильма.
📷 1. Русский промпт — мрачный, суровый, пыльный кадр. Чёрно-белое, будто хроника. Герой — будто из Тарковского.
📷 2. Японский промпт — мягкий свет, утренний город, кинематографично и молчаливо. Всё в эмоции, даже без слов.
📷 3. Итальянский промпт — портретное, живое, почти уличная мода. Цвета, взгляд, текстура — всё о человеке и городе.
Промт на русском:
Фотография мужчины в старинной одежде идущего медленно по многолюдному рынку вокруг него суетятся люди за прилавками он одинок на фоне движущейся толпы атмосфера будничной торговли мягкое равномерное освещение подчёркивает его силуэт
🎯 Неочевидный, но мощный приём: выбирай язык — и получай нужное настроение.
Не нужно перегружать описание, v7 сам подтянет культурный контекст.
Иногда, чтобы картинка «говорила», достаточно просто сменить язык.
👇 Подпишись, сохрани и кидай друзьям
#hints#midjourney | AcidCrunch
OpenAI — возвращение старых моделей
По просьбам большинства OpenAI откатила популярные модели и засунула их во вкладку «Старые модели» (её можно включить в настройках).
Появилось разделение и у новых моделей:
Авто-режим — сам выбирает модель за тебя.
Ручной режим — ты сам выбираешь, кого использовать.
И вот фишка:
Когда ты в авто, и он выбирает, например, 5 thinking — лимиты не тратятся. Но при этом и результат хуже: модель работает слабее, чем могла бы.
Почему?
Всё потому, что авто-режим выбирает её за тебя, используя не «максималку своих возможностей», а что-то среднее.
Лучше выбирать думающую модель самостоятельно: и объём вывода больше, и лимитов обычной подписки за глаза — потратить их не успеешь).
😂 И не забывай репостить ага)
#hints#OpenAi | AcidCrunch
Figma-хак объединяем объекты в одну картинку через Figma EDIT
Сегодня проверил гипотезу: склеить два фото в одно PNG, кинуть в Edit image и попросить ИИ поменять героя. Работает!
💡 Как повторить за 60 сек:
1️⃣ Брось два портрета на холст, выровняй.
2️⃣ Ctrl + Shift + C → копия сразу как единый PNG.
3️⃣ Вставь обратно (Ctrl + V) — получишь слой Combined.png.
4️⃣ Shift + E → «Edit image», пиши промт что хочешь объединить. В моём случае было: "Замени персонажа справа на персонажа слева, фон и ракурс как справа"
5️⃣ Нажми Generate
Прикольно работает и с мокапами/иконками, если их тоже склеить в PNG.
Пока Figma не дала «multi-image reference», этот костыль спасает. И это бесплатно)
Если что то придумаете с таким workflow присылайте идеи и готовые решения в комменты
👇 Подпишись, сохрани и кидай друзьям
#hints#figma | AcidCrunch
Лайфаки Runway Gen-4 #2
Предоставь референсы :
поза марионетки + местоположение + персонаж.
Дай на них ссылки программе + добавь описание :
Поза из @img_1 Персонаж из @img_2 Сцена и композиция из @img_3
А Runway точно воспроизведёт нужную композицию!
Напоминаю безлимитка $95
#hints#runwayml | AcidCrunch
🏅Новичкам на канале
Собрал вам свои туториалы и боты — всё, что выходило на AcidCrunch. Может, пригодится:
Боты
MJ V7 Промт-мастер бот — помогает развивать идею и писать точные промты
Veo 3 Промт-мастер бот — Описание сюжета + обычный промт + Json формат + развитие идеи
Создание Anti spam бота через n8n
Glass-it картинку в стеклянную 3д-шку
Нейронки
Midjourney необычные ракурсы персонажа без сложных промтов
Послойная генерация в GPT — как строить сцены поэтапно и структурно
Скрытые фишки Higgsfield — как выжать максимум из видео генерации
Контроль Runway Reference — легко направлять поведение модели
Стабильный персонаж в Midjourney Edit Mode — как зацементировать образ
Figma
Hero Gradient в Figma — эффектный приём в UI, простой и мощный
Figma-хак объединяем объекты в одну картинку через Figma EDIT
И да, если ищешь конкретный контент — у меня работает система тегов. Просто кликни по хэштегу и выбери вкладку “Этот чат”. Там собраны все посты по теме.
Вот список наиболее популярных тут:
#ainews
#hints
#midjourney
#chatgpt
#figma
#runway
#higgsfield
#tutorial
#rumors
AcidCrunch