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

Резултати

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

Пребарај: #militarytechnology

当前筛选 #militarytechnology清除筛选
New Eastern Outlook

@neweasternoutlook · Post #11891 · 13.01.2026 г., 06:01

🇷🇺🛩Russia’s Molniya Aerial Drones Low-cost mass-produced UAVs illustrate how battlefield adaptation and technological pragmatism are reshaping modern warfare ✍️Author:Muhammad Ali Baig Research Fellow at the Institute of Strategic Studies, Islamabad (ISSI) ➡️The Russia–Ukraine conflict has highlighted the central role of scalable, technology-driven weapons systems capable of operating across a dispersed battlespace. In this context, Russia’s development of the Molniya unmanned aerial drone reflects a deliberate focus on cost efficiency, mass production, and operational flexibility. Designed from inexpensive materials and deployable by small crews, Molniya UAVs address the core demand of prolonged high-intensity warfare: sustaining pressure on multiple targets without exposing frontline personnel or exhausting industrial capacity. Russia’s Molniya aerial drones have redefined the role of UAVs in modern warfare, and these drones are the truest manifestation of Russia’s battlefield adaptations ➡️Technically, the Molniya represents a hybrid approach that blends simplicity with modular lethality. Its fixed-wing design, limited radar signature, and ability to carry anti-armor munitions or improvised warheads make it suitable for strike missions against fortified and mobile targets. Over time, its role has expanded beyond kamikaze attacks to include reconnaissance, surveillance, and even the mid-air deployment of FPV drones. This adaptability demonstrates how incremental innovation, rather than high-end complexity, can yield decisive tactical advantages. 🟦The integration of modern technologies has further enhanced Molniya’s battlefield relevance. The use of fiber-optic control to counter electronic warfare, satellite internet for extended command links, and onboard microcomputing for precision targeting reflects a pragmatic response to evolving countermeasures. As a result, Molniya drones illustrate a broader trend in contemporary conflict: the transformation of commercially available components into effective military tools. Their success underscores how future warfare may be shaped less by exclusive high-tech platforms and more by scalable, resilient systems optimized for attrition-based conflicts. #armament#Militarytechnology#Russia#RussiasSpecialMilitaryOperation#UAV READ MORE ✅@NewEasternOutlook