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

Пребарај: #tunguska

当前筛选 #tunguska清除筛选
Universe Mysteries 🪐

@cosmomyst · Post #124 · 13.08.2025 г., 00:11

🪐 On June 30, 1908, a small asteroid or comet exploded over Tunguska, Siberia, flattening 2,000 square kilometers of forest in an instant. Known as the Tunguska event, this airburst was caused by an object about 50–60 meters wide—large enough to release energy more powerful than the largest nuclear bomb ever detonated, yet leaving no impact crater. ✨ #asteroids⚡#danger⚡#Tunguska⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space 👉subscribe Universe Mysteries

☄️ ¿Qué cayó del cielo en Tunguska? El misterio que aún intriga a la ciencia Un día como hoy, el 30 de junio de 1908, el cielo sobre la remota taiga siberiana se iluminó con un destello cegador. A las 7:17 de la mañana, un objeto desconocido atravesó la atmósfera y explotó sobre el río Podkámennaya Tunguska, en la actual región de Krasnoyarsk, Rusia. La explosión fue tan potente que arrasó más de 2.150 km² de bosque, derribando cerca de 80 millones de árboles como si fueran palillos de fósforo. Lo más desconcertante del llamado evento de Tunguska es que, a pesar de su fuerza (equivalente a entre 3 y 15 megatones de TNT, unas mil veces más potente que la bomba de Hiroshima), no dejó cráter. Hoy se sabe que el objeto, probablemente un asteroide de unos 50-60 metros de diámetro, explotó a unos 5-10 km de altura, liberando su energía en el aire. La onda sísmica fue registrada por estaciones en toda Eurasia, y la onda de choque dio la vuelta al planeta dos veces. En Europa y Asia, las noches siguientes fueron muy brillantes, incluso en Londres y Estocolmo se reportaron cielos iluminados por nubes noctilucentes, formadas por partículas en suspensión tras la explosión. Debido a la lejanía del lugar y a las dificultades logísticas, la primera expedición científica no llegó hasta 1927, liderada por el geólogo soviético Leonid Kulik. Su equipo encontró árboles calcinados y tumbados radialmente desde un epicentro invisible. No hallaron fragmentos del meteorito, lo que alimentó teorías de lo más variopintas: desde ovnis hasta armas secretas. Sin embargo, la ciencia moderna ha confirmado que se trató de un airburst, una explosión aérea causada por un cuerpo celeste. ¿Podría repetirse? Sí. De hecho, en 2013, un meteorito explotó sobre Cheliábinsk, también en Rusia, causando más de mil heridos por vidrios rotos. #Tunguska#HistoriaRusa#MisteriosDelEspacio#Meteoritos#CienciaYCuriosidades ¡Comparte nuestro contenido!❤️ 🖥https://vamosarusia.com 💬@vamosarusia