Установить свойства виджета в 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
Катюша по-американски, облегченный вариант. Dodge WC-52 с установленной на нем пусковой установкой 4.5-inch Multiple Rocket Launcher T27, Аахен, ноябрь 1944 года. Также в ноябре 1944 года состоялся удачный, по мнению американских военных, случай применения T27 во время боёв за Хюртгенвальд. На сей раз их смонтировали в грузовиках GMC CCKW. Но артиллеристы скривили нос - "недалеко, много дыма, невысокая точность, большой расход боеприпасов". Именно с этим связано такое торможение с применением систем залпового огня в американской армии. Посему снова "Ксилофоны" стали работать только весной 1945 года. Чудачество и самодурство американской артиллерии как есть.
#mlrs
#conversion
🚢Exmar приобретает СПГ-танкеры для проектов конверсии.
Бельгийская Exmar приобрела СПГ-танкер "Ummera" (145 000 куб. м, 2005 г., бывший "Umm Bab") у греческой Maran Gas Maritime.
По данным брокеров, компания также согласовала покупку второго аналогичного судна.
Суда, оснащенные паротурбинной установкой, планируется использовать в проектах конверсии, включая возможные инфраструктурные решения в Колумбии и Нидерландах, что соответствует стратегии Exmar по развитию газовой инфраструктуры и плавучих решений.
С отраслевой точки зрения сделка отражает тренд вторичного использования устаревающих СПГ-судов. Вместо утилизации такие активы переоборудуются в специализированные платформы, включая FSRU и другие газовые проекты, что позволяет продлить их жизненный цикл.
Дополнительно рынок демонстрирует четкое разделение: современные газовозы востребованы для перевозок, тогда как более старые паротурбинные танкеры находят применение в инфраструктурных проектах, где требования к топливной эффективности ниже.
Таким образом, Exmar использует текущую конъюнктуру для формирования портфеля проектов с добавленной стоимостью, ориентированных на глобальный газовый рынок.
📌Exmar NV — основана в 1985 году, бельгийская энергетическая и судоходная компания, контролируется семьёй Саверис (Бельгия).
#LNG#shipping#conversion#energy#infrastructure
🚢70-метровая платформа "Ocean Falcon" продана новому владельцу для переоборудования в экспедиционную яхту.
Брокерская компания Northrop & Johnson объявила о продаже 66,8-метрового офшорного спасательного судна, представленного на рынке как 70-метровая экспедиционная платформа "Ocean Falcon".
Судно было построено в 2015 году на испанской верфи Astilleros Zamakona как коммерческое спасательное судно. Позднее оно было приобретено с целью конверсии в экспедиционную суперяхту.
В 2022 году проект переоборудования был принят верфью Lürssen, однако в 2024 году работы были прекращены. Ранее в проекте участвовала также Icon Yachts.
Благодаря стальному корпусу и водоизмещению 2 950 GT, судно обладает высокой автономностью и рассчитано на операции в удалённых районах - от Арктики до южной части Тихого океана. Крейсерская скорость: 12,5 узла, макс: 15 уз.
Платформа подходит для частных экспедиций, научных миссий или чартерной эксплуатации после конверсии.
Последняя заявленная цена судна составляла €14,95 млн.
Сделка отражает устойчивый интерес к крупным специализированным платформам для последующей переделки в сегменте конверсии оффшорных судов в экспедиционные яхты.
📌Northrop & Johnson основана в 1949 году в США и является одной из ведущих международных брокерских компаний в сегменте суперяхт. Компания частная; структура собственности не раскрывается публично.
#yachting#explorer#conversion#superyacht#maritime
В журнале Electrochemical Materials and Technologies вышла обзорная работа "H/D exchange studies of methane activation mechanisms in heterogeneous catalysis"
🔗https://doi.org/10.15826/elmattech.2023.2.014
🔗https://journals.urfu.ru/index.php/elmattech/article/view/6883
В данном обзоре подробно рассматривается механизм конверсии метана и анализируются существующие теоретические и экспериментальные подходы к изотопному обмену H/D между метаном и каталитическими системами:
#CH4#methane#conversion#isotope#catalyst#bonds#homogeneous#exchange #
#typescript#bun#conversion#convert#converter#document_conversion#elysia#file_conversion#file_converter#hacktoberfest#pdf_converter#self_hosted#tailwindcss#typescript
ConvertX is a self-hosted online file converter that supports over a thousand file formats, including images, videos, documents, e-books, and 3D assets. It lets you convert multiple files at once, offers password protection, and supports multiple user accounts for privacy. You can run it easily using Docker, making it simple to set up on your own server. This means your files stay private since conversions happen locally without sending data to external servers. It uses powerful open-source tools like FFmpeg and ImageMagick, giving you a versatile and secure way to handle all your file conversion needs in one place[1][2].
https://github.com/C4illin/ConvertX
E-commerce Conversion Crisis
E-commerce stores face a critical issue: they struggle to convert social media traffic into purchases, with conversion rates half as effective as average standards. Social media is a key source for online sales, with 64% of internet users shopping through these platforms, accounting for one-third of total online sales. The significant loss from unconverted traffic prompts stores to seek solutions, making platforms that improve conversion rates highly valuable.
Learn more about a startup addressing this issue: Read here
#Ecommerce#SocialMedia#Conversion#OnlineSales#Startup#Traffic#Retail#DigitalMarketing#Commerce#Business#Tech#Innovation#Sales#Marketing#UserExperience#Platforms#Shopping
E-commerce Conversion Crisis
E-commerce stores face a critical challenge with low conversion rates from social media traffic—about half of the general average. Despite this, social networks are a major traffic source, with 64% of users making purchases through them, accounting for a third of online sales. This gap presents significant revenue losses for stores that fail to convert this traffic, highlighting a potential market for platforms aimed at boosting conversions.
Read more: Fastfounder
#Ecommerce#Conversion#SocialMedia#Traffic#Sales#OnlineShopping#Startup#Market#Revenue#Challenges#Users#Platforms#Retail#Growth#Insights#Business#Tech#DigitalMarketing#Shopping#Income#Reports