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 слични објави

Пребарај: #smersh

当前筛选 #smersh清除筛选

🔍 Los secretos de SMERSH: La organización que aterrorizó a los espías nazis Cuando en 1942 el Tercer Reich comprendió que su ansiado blitzkrieg había fracasado, los altos mandos alemanes apostaron por la guerra en las sombras. La inteligencia nazi desplegó una vasta red de espionaje con agentes infiltrados en territorio soviético, con el propósito de desestabilizar al enemigo desde adentro. Pero el contraataque no tardó en llegar. SMERSH, un organismo de contrainteligencia creado para erradicar la presencia enemiga dentro de las filas soviéticas, emergió como una de las herramientas más letales en la lucha contra el espionaje alemán. Su nombre, una abreviatura de "Смерть шпионам!" (Muerte a los espías), dejó claro desde el principio cuál era su objetivo. Desde sus primeras operaciones, el organismo demostró una astucia despiadada. En lugar de simplemente neutralizar a los espías nazis, los agentes soviéticos utilizaron tácticas de desinformación para sembrar el caos dentro de la inteligencia alemana. Uno de los ejemplos más audaces ocurrió en el verano de 1944, cuando SMERSH hizo creer al Abwehr que en el área de Berézino, Bielorrusia, existía un grupo de soldados alemanes atrapados. La respuesta nazi fue inmediata: desde Berlín enviaron suministros, armas e incluso radio-operadores mediante paracaídas. Lo que no sabían era que todo el material que enviaban terminaba reforzando a las tropas soviéticas. Los espías no solo desmantelarón redes de espionaje enemigas, sino que evitó múltiples atentados contra líderes soviéticos, incluido un plan para asesinar a Iósif Stalin. También fue responsable de desbaratar operaciones del Ejército de Liberación Ruso (ROA) y la insurgente UPA. En sus pocos años de existencia, SMERSH capturó a más de 400 agentes nazis, ejecutó decenas de operaciones de contrainteligencia. A pesar de su eficacia, fue disuelto en 1946, con la reestructuración del aparato militar soviético tras la guerra. Sin embargo, la leyenda de esta organización sigue vigente, rodeada de secretos y operaciones que hasta hoy permanecen en archivos confidenciales.🇷🇺 #SMERSH#SegundaGuerraMundial#HistoriaSoviética#Espionaje#Contrainteligencia ¡Comparte nuestro contenido!❤️ 🖥https://vamosarusia.com 💬@vamosarusia