TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

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

Hashtags

Резултати

Пронајдени 7 слични објави

Пребарај: #trailers

当前筛选 #trailers清除筛选
Viral Today

@viral_today · Post #2858 · 11.08.2024 г., 12:30

Disney just unveiled a first look at the live-action ‘Lilo & Stitch,’ set to hit theaters in Summer 2025. @Viral_Today / #trailers

Hashtags

Viral Today

@viral_today · Post #2807 · 01.08.2024 г., 14:30

Squid Game Season 2 gets a release date and a teaser trailer. Catch it on Netflix on December 26th. Season 3 is set for 2025! @Viral_Today / #trailers

Hashtags

Viral Today

@Viral_Today · Post #2140 · 08.03.2024 г., 13:00

⚡️Pixar has released another trailer of «Inside Out 2» and it has already gained 10 million views @Viral_Today / #trailers

Hashtags

Viral Today

@Viral_Today · Post #2057 · 02.11.2022 г., 14:01

⚡️Official trailer of the new Avatar was just released. The movie will air in theaters December 16 Full movie trailer -> youtu.be/d9MyW72ELq0 YouTubeNews/ #trailers

Hashtags

Милитера

@militera · Post #6830 · 19.02.2026 г., 17:14

Боевые действия в ходе Советско-финляндской войны 1939-40 гг выявили необходимость в создании средств для безопасной доставки пехоты на поле боя. Так на свет появились бронированные сани (волокуши) конструкции Соколова, которые позволяли пехоте сопровождать танки. Правда, их использование выявило проблему, которая позже преследовала похожие конструкции. Дело в том, что десант оказался уязвим от огня с флангов и особенно сзади. По этой причине в конце 1941 года началось проектирование новых бронированных саней, полностью закрытых. Главной проблемой бронесаней и прочих бронеприцепов, которые разрабатывались в конце 1941-начале 1942 года, стали их чрезмерные габариты. Которые, в свою очередь, прямым образом влияли на массу изделия. Итогом стало то, что основную массу таких прицепов даже не стали строить в виде опытных экземпляров. Справедливость такого решения показала история бронеприцепа ТД-200. Испытания выявили чрезмерную массу изделия, которая напрямую влияла на маневренность. К тому же стало понятно, что более удачным решением станет использования, как тягача, танка Т-34. Всё это привело к созданию бронеприцепа (бронесаней) БП-60. https://dzen.ru/a/aYB2WBQlui3rgqOn #t60 #trailers

Слабоумие и синопсис

@dementiaetsinopsis · Post #585 · 26.02.2023 г., 11:01

​​​​Режиссер монтажа Bill Neil из BUDDHA JONES заглядывает под юбку науке создания трейлеров. В начале довольно подробный разбор тизера NOPE, затем много классики (ALIEN, THE FOG), во второй половине экскурс в его более ранние работы среди которых HALLOWEEN Дэвида Гордона Грина, 10 CLOVERFIELD LANE, THE TEXAS CHAINSAW MASSACRE и др. Вообще Билл идеальное воплощение современного режиссера монтажа — помимо очевидного понимания сторителлинга, наука монтажа это конечно же про дизайн и эстетику. Каждый звук и скрип запрятанный под слоем фолей или эффектов является химическим элементом активирующим ту самую формулу отвечающую за ‘магию кино’. #trailers#filmgrammar#editing