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

Резултати

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

Пребарај: #mig29

当前筛选 #mig29清除筛选
Лёгкое небо

@legkoenebo · Post #3982 · 01.06.2025 г., 09:58

©️ Поздравляем всех с 94-ым Днём работника Военно-транспортной авиации России! Пусть всегда будет чистое небо, исправная стальная птица, лётная погода, отменный опыт, удачные взлёты, благополучные посадки, счастливые дни и в целом вся жизнь! 📕💬 Первое июня – это не только первый день лета, не только день, с которого начинаются летние каникулы, но также праздник военно-транспортной авиации России. Известно, что авиация очень важна для армии любой страны мира. Не менее важна и военно-транспортная авиация. В этот день свой праздник принято отмечать летчикам, а также обслуживающему персоналу. Работающие в этой сфере люди зачастую отлично подготовлены и на высшем уровне могут выполнять боевые задачи. Лёгкое небо | Донат #russia#il76#mig29

🇨🇳🤝🇷🇸Serbian MiG-29B fighters have received Chinese CM-400AKG hypersonic aeroballistic missiles as we reported yesterday, but let's look closer. Photos have appeared online showing a fighter equipped with two Chinese CM-400AKG air-to-surface missiles. If confirmed, Serbia would become the second foreign operator of this weapon system. The CM-400AKG is an aeroballistic missile developed on the basis of the SY400 unguided air-launched rocket. Since it weighs only about 910 kg, it can be carried even by light fighters such as the JF-17 Thunder, for which it was originally designed. It reaches speeds of around Mach 5.5 to 6.3, which effectively makes Serbian MiG-29s the first fighters in Europe outside of Russia to gain hypersonic strike capability. At the current stage, this would put them ahead even of the Rafale F4.1/5 and Rafale-M, which are still awaiting the development and operational readiness of the ASN4G hypersonic missile. Depending on the variant, its strike range is reported to be between 240 and 400 km. The guidance system includes: - Inertial and satellite navigation - Passive radar seeker - Optionally: an infrared or television guidance channel Serbia inherited part of its MiG-29 fleet from the Yugoslav Air Force, and later received additional aircraft from Russia and Belarus. Although the onboard radars of these aircraft already lag well behind modern systems, integrating the CM-400AKG could significantly expand their strike capabilities. When using this missile, targeting data can come from external reconnaissance assets, so the age of the aircraft’s own radar is not a decisive factor. At the same time, in 2024 Belgrade signed an agreement to purchase French Dassault Rafale fighters, which, according to specialized media reports, will have limited capabilities and will not receive long-range Meteor missiles. Many link the choice of French aircraft to political factors and Serbia’s desire for closer integration with the European Union. It is worth noting that Serbia has already purchased Chinese weapons before, for example the HQ-22 air defense system, selected as an alternative to the sanctioned Russian S-300 and S-400 systems. If the integration of the CM-400AKG is confirmed, it could extend the service life of Serbian MiG-29s and draw the attention of other operators of this fighter, such as Algeria, Myanmar, Belarus, and Turkmenistan. 🤫 It is also noteworthy that, under the current circumstances, the Russian Ministry of Defense could quite plausibly purchase a batch of 300 to 500 CM-400AKG missiles, after which specialists at aircraft repair plants could adapt the weapon control systems of MiG-29S, SMT, M2, and MiG-29K fighters in service with the Russian Aerospace Forces for the use of these missiles in further strikes against AFU targets. #info #Mig29#Serbia #China#Air_to_Air #radar