@fandom_sticker1 · Post #6529 · 23.04.2025 г., 17:29
❀•°•═══ஓ๑ 🤩๑ஓ════•°•❀ ꒷︶꒷꒥꒷‧₊˚૮꒰˵•ᵜ•˵꒱ა‧₊˚꒷︶꒷꒥꒷꒷︶꒷꒥꒷‧₊˚˵•ᵜ•˵ ☆• 𝓓𝓒•☆ .・。.・゜✭・.・✫・゜・。..・。.・✭・.・ ·˚ ༘₊· ͟͟͞͞꒰➳ #DC ꒷︶꒷꒥꒷‧₊˚૮꒰˵•ᵜ•˵꒱ა‧₊˚꒷︶꒷꒥꒷꒷︶꒷꒥꒷‧₊˚˵•ᵜ•˵ ❀•°•═══ஓ๑ 🤩๑ஓ════•°•❀
Hashtags
TGINSIGHT SIMILAR POSTS
Изворен канал @pythonotes · Post #381 · 23 окт.
Установить свойства виджета в 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
Пребарај: #dc
@fandom_sticker1 · Post #6529 · 23.04.2025 г., 17:29
❀•°•═══ஓ๑ 🤩๑ஓ════•°•❀ ꒷︶꒷꒥꒷‧₊˚૮꒰˵•ᵜ•˵꒱ა‧₊˚꒷︶꒷꒥꒷꒷︶꒷꒥꒷‧₊˚˵•ᵜ•˵ ☆• 𝓓𝓒•☆ .・。.・゜✭・.・✫・゜・。..・。.・✭・.・ ·˚ ༘₊· ͟͟͞͞꒰➳ #DC ꒷︶꒷꒥꒷‧₊˚૮꒰˵•ᵜ•˵꒱ა‧₊˚꒷︶꒷꒥꒷꒷︶꒷꒥꒷‧₊˚˵•ᵜ•˵ ❀•°•═══ஓ๑ 🤩๑ஓ════•°•❀
Hashtags
@fandom_sticker1 · Post #5312 · 03.10.2024 г., 17:54
❀•°•═══ஓ๑🎟️๑ஓ════•°•❀ ꒷︶꒷꒥꒷‧₊˚૮꒰˵•ᵜ•˵ა‧₊˚꒷︶꒷꒥꒷꒷︶꒷꒥꒷‧₊˚˵•ᵜ•˵ ☆•𝕳𝖆𝖗𝖑𝖊𝖞 •☆ .・。.・゜✭・.・✫・゜・。..・。.・✭・.・ ·˚ ༘₊· ͟͟͞͞꒰➳ #DC ꒷︶꒷꒥꒷‧₊˚૮꒰˵•ᵜ•˵꒱ა‧₊˚꒷︶꒷꒥꒷꒷︶꒷꒥꒷‧₊˚˵•ᵜ•˵ ❀•°•═══ஓ๑🎟️๑ஓ════•°•❀
Hashtags
@fandom_sticker1 · Post #5294 · 20.09.2024 г., 14:11
❀•°•═══ஓ๑🎟️๑ஓ════•°•❀ ꒷︶꒷꒥꒷‧₊˚૮꒰˵•ᵜ•˵ა‧₊˚꒷︶꒷꒥꒷꒷︶꒷꒥꒷‧₊˚˵•ᵜ•˵ ☆•𝕳𝖆𝖗𝖑𝖊𝖞 •☆ .・。.・゜✭・.・✫・゜・。..・。.・✭・.・ ·˚ ༘₊· ͟͟͞͞꒰➳ #DC ꒷︶꒷꒥꒷‧₊˚૮꒰˵•ᵜ•˵꒱ა‧₊˚꒷︶꒷꒥꒷꒷︶꒷꒥꒷‧₊˚˵•ᵜ•˵ ❀•°•═══ஓ๑🎟️๑ஓ════•°•❀
Hashtags
@comicszona · Post #5202 · 27.06.2024 г., 10:49
🇬🇧Dark Knights of Steel #8-12 🇷🇺Темные Рыцари Стали #8-12 🔎ОПИСАНИЕ #dc
Hashtags
@comicszona · Post #5131 · 24.05.2024 г., 16:03
🇬🇧Robins #3-6 🇷🇺Робины #3-6 🔎ОПИСАНИЕ #dc
Hashtags
@comicszona · Post #5127 · 23.05.2024 г., 04:37
🇬🇧Batman_City of Madness #01 🇷🇺Бэтмен_Город безумия #01 Глубоко под Готэм-сити существует другой Готэм. Подземный Готэм — это живой кошмар, населенный извращенными двойниками жителей Готэма, подпитываемый страхом и ненавистью, льющимися сверху. На протяжении десятилетий проход между городами был запечатан и тщательно охранялся Судом Сов. Но теперь дверь распахнулась, и другая версия Темного рыцаря сбежала... #dc
Hashtags
@comicszona · Post #5115 · 17.05.2024 г., 16:41
🇬🇧John Constantine Hellblazer_Dead in America #01 🇷🇺Джон Константин Хеллблэйзер_Мертвец в Америке #01 Джон Константин в очередной раз обманул смерть, но его сердце не бьётся, тело разлагается, и он, его подруга Нат и сын Ной скрываются в Америке, ведь их разыскивают за убийство. Естественно, во всём виноват Джон - а как же иначе? #dc
Hashtags
@comicszona · Post #5101 · 12.05.2024 г., 09:37
🇬🇧Batman_Death in the Family #01 🇷🇺Бэтмен_Смерть в Семье #01 50-й юбилей Темного Рыцаря-детектива — и его фанатам была предоставлена небывалая возможность. Они могли решить исход одной из самых важных сюжетных линий. Выбор? Сохранить статус-кво и Динамический Дуэт Бэтмена и Робина, или снова сделать Бэтмена тем, кем он был раньше, — мрачным одиночкой, объявившим войну преступности. Было проведено голосование, были представлены результаты, свершилась история — после своего самого сокрушительного поражения Робин погиб и Бэтмен снова стал единственным защитником Готэма. #dc
Hashtags
@comicszona · Post #5088 · 07.05.2024 г., 04:54
🇬🇧Stargirl_The Lost Children #2-3 🇷🇺Старгерл_Потерянные дети #2-3 🔎ОПИСАНИЕ #dc
Hashtags
@comicszona · Post #5084 · 05.05.2024 г., 16:07
🇬🇧Mortal Kombat_X #03 🇷🇺Смертельная Битва_X #03 🔎ОПИСАНИЕ #dc
Hashtags
@comicszona · Post #5071 · 29.04.2024 г., 07:48
🇬🇧Mortal Kombat_X #02 🇷🇺Смертельная Битва_X #02 🔎ОПИСАНИЕ #dc
Hashtags
@comicszona · Post #5067 · 27.04.2024 г., 08:01
🇬🇧The New Golden Age #01 🇷🇺Новый Золотой век #01 Начиная с Общества Справедливости Америки и заканчивая Легионом Супергероев, Новый Золотой Век раскроет эпическую и полную тайн историю героизма DC, положив начало новым сериям, которые прочно войдут во Вселенную DC. С 1940-х по 3040-е годы герои сражаются с величайшим злом своего времени. Но после выхода «Флэшпоинт: Продолжение» жизнь этих героев и злодеев перевернется с ног на голову. Будущее DC... и прошлое... уже никогда не будет прежними. #dc
Hashtags