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

Пребарај: #rompehielosnuclear

当前筛选 #rompehielosnuclear清除筛选

🚢Exploración polar: el rompehielos ruso que desafía al Ártico El "50 años de la Victoria" es un impresionante rompehielos nuclear ruso que surca las aguas heladas del Ártico, abriendo camino en uno de los entornos más extremos del planeta. Este coloso de acero, construido en el Baltijski Zavod de San Petersburgo, es una joya de la ingeniería rusa y un símbolo de la exploración polar. El proyecto comenzó en 1989, originalmente bajo el nombre de "Ural", pero debido a problemas financieros, su construcción se detuvo hasta 2003. Finalmente, en 2007, el barco entró en servicio y desde entonces ha sido una pieza clave en la navegación en esta parte del mundo. Con una longitud de 159 metros y una potencia de 75.000 caballos de fuerza, es capaz de romper capas de hielo de hasta 2,8 metros de espesor. Su diseño incluye una proa en forma de cuchara, lo que le permite deslizarse sobre el hielo y partirlo con mayor eficiencia. Ha realizado más de 100 viajes al Polo Norte, convirtiéndose en un ícono de la exploración mundial. En enero de 2025, el barco sufrió daños en su casco mientras navegaba por el Mar de Kara, aunque las autoridades aseguraron que podía seguir operativo y que no hubo peligro para su tripulación. Este incidente resalta los desafíos de operar en condiciones extremas y la importancia de contar con tecnología avanzada para la navegación en el Ártico. Este rompehielos no solo se usa para abrir rutas, sino que también ha sido protagonista de expediciones científicas y turísticas. En 2013, llevó el fuego olímpico al Polo Norte como parte de los preparativos para los Juegos Olímpicos de Invierno en Sochi. El "50 años de la Victoria" ha sido fundamental para el desarrollo de la navegación en el norte de Rusia, facilitando el transporte de mercancías y la investigación científica en una de las regiones más inhóspitas del mundo. Su legado como rompehielos nuclear sigue vigente, y su papel en la exploración ártica continúa siendo crucial.🇷🇺 #ExploraciónPolar#RompehielosNuclear#Ártico#Rusia#50AñosDeVictoria ¡Comparte nuestro contenido!❤️ 🖥https://vamosarusia.com 💬@vamosarusia