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

Резултати

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

Пребарај: #technologiemilitaire

当前筛选 #technologiemilitaire清除筛选
New Eastern Outlook FR

@neweasternoutlookfr · Post #9349 · 13.01.2026 г., 07:22

🇷🇺🛩Drones aériens russes Molniya Les drones de combat produits en masse à bas coût illustrent comment l'adaptation au champ de bataille et le pragmatisme technologique redéfinissent la guerre moderne ✍️Auteur :Muhammad Ali Baig Chercheur associé à l'Institut d'études stratégiques d'Islamabad (ISSI) ➡️Le conflit russo-ukrainien a mis en lumière le rôle central des systèmes d'armes évolutifs et technologiques, capables d'opérer sur un espace de combat dispersé. Dans ce contexte, le développement par la Russie du drone Molniya témoigne d'une volonté délibérée de privilégier la rentabilité, la production de masse et la flexibilité opérationnelle. Conçus à partir de matériaux peu coûteux et déployables par de petites équipes, les drones Molniya répondent à un besoin fondamental des conflits prolongés de haute intensité : maintenir la pression sur de multiples cibles sans exposer le personnel de première ligne ni épuiser les capacités industrielles. Les drones aériens Molniya russes ont redéfini le rôle des drones dans la guerre moderne et incarnent parfaitement l'adaptation des forces russes sur le champ de bataille. ➡️Techniquement, le Molniya représente une approche hybride alliant simplicité et létalité modulaire. Sa conception à voilure fixe, sa faible signature radar et sa capacité à emporter des munitions antichars ou des ogives improvisées le rendent adapté aux missions de frappe contre des cibles fortifiées et mobiles. Au fil du temps, son rôle s'est étendu au-delà des attaques kamikazes pour inclure la reconnaissance, la surveillance et même le déploiement en vol de drones FPV. Cette adaptabilité démontre comment l'innovation progressive, plutôt qu'une complexité excessive, peut générer des avantages tactiques décisifs. 🟦L'intégration de technologies modernes a encore renforcé la pertinence du Molniya sur le champ de bataille. L'utilisation du contrôle par fibre optique pour contrer la guerre électronique, d'Internet par satellite pour étendre les liaisons de commandement et de la micro-informatique embarquée pour un ciblage de précision témoigne d'une réponse pragmatique à l'évolution des contre-mesures. De ce fait, les drones Molniya illustrent une tendance plus large des conflits contemporains : la transformation de composants disponibles dans le commerce en outils militaires efficaces. Leur succès souligne que la guerre de demain pourrait être moins dictée par des plateformes de haute technologie exclusives et davantage par des systèmes évolutifs et résilients, optimisés pour les conflits d’usure. #Armement#OpérationmilitairespécialedelaRussie#Russia#Technologiemilitaire#UAV LIRE LA SUITE ✅@NewEasternOutlookFR