Регулярно приходится писать и ревьюить код, где используется PySide2-6.
Заметил, что в подавляющем большинстве случаев настройка создаваемых базовых виджетов происходит через методы. Думаю, всем знаком такой способ.
Простой пример с кнопкой:
button = QPushButton("Click Me")
button.setMinimumWidth(300)
button.setFlat(True)
button.setStyleSheet("font-size: 20pt")
button.setToolTip("Super Button")
button.clicked.connect(lambda: print("Button clicked"))
Но есть и альтернативный способ - настройка через свойства. Это просто ключевые аргументы конструктора класса. Хоть они и не указаны в документации как аргументы, но они есть)
Этот код делает тоже самое но с помощью Property
button = QPushButton(
"Click Me",
minimumWidth=300,
flat=True,
styleSheet="font-size: 20pt",
toolTip="Super Button",
clicked=lambda: print("Button clicked"),
)
Где это может быть полезно
▫️ Это выглядит более аккуратно и коротко, уже повод использовать
▫️ Может использоваться в заполнении лейаута, когда нам не нужно никакое другое взаимодействие с виджетом и поэтому сохранять его в переменную не требуется. Например, лейбл или кнопка.
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
layout.addWidget(QLabel("Button >", alignment=Qt.AlignRight))
layout.addWidget(QPushButton("Click Me", clicked=lambda: print("Button clicked")))
widget.show()
Либо так
widget = QWidget(minimumWidth=400)
layout = QHBoxLayout(widget)
for wd in (
QLabel("Button >", alignment=Qt.AlignRight),
QPushButton("Click Me", clicked=lambda: ...)
):
layout.addWidget(wd)
widget.show()
▫️ Можно хранить настройки в каком-то конфиге или генерировать на лету, после чего передавать как kwargs.
kwargs = {"text": "Hello " * 30, "wordWrap": True}
my_label = QLabel(**kwargs)
Как получить полный список доступных свойств?
Эта функция распечатает в терминал все свойства виджета и их текущие значения
def print_widget_properties(widget):
meta_object = widget.metaObject()
for i in range(meta_object.propertyCount()):
property_ = meta_object.property(i)
property_name = property_.name()
property_value = property_.read(widget)
print(f"{property_name}: {property_value}")
#tricks#qt
🚢Kuok Maritime усиливает флот: “Pac Libra” и “Pac Leo” введены в эксплуатацию.
Сингапурская Pacific Carriers Limited (PCL), входящая в группу Kuok Maritime, приняла в эксплуатацию два новых многоцелевых судна — “Pac Libra” и “Pac Leo”.
Суда стали первыми в серии 40 000 DWT, разработанной совместно с сингапурской верфью PaxOcean Group. Строительство осуществляется на мощностях PaxOcean Zhoushan под классом American Bureau of Shipping (ABS).
Основное назначение — перевозка проектных грузов, при этом суда способны работать и в сегментах сухих и навалочных грузов, расширяя коммерческую гибкость оператора.
Дедвейт: 40 000 тонн, вместимость трюмов: 48 486 куб. м. Конструктивно предусмотрена уникальная конфигурация сдвоенных кранов и открытая палуба для тяжелых и негабаритных грузов. Суда сертифицированы для перевозки IMDG-грузов, оснащены гидравлической системой твиндеков и энергоэффективными решениями.
Главная энергетическая установка — Hyundai-MAN B&W 6S50ME-C9.7, вспомогательные двигатели — Yanmar. Соответствие требованиям IMO Tier III по NOx, возможность работы на MGO и HSFO. Суда готовы к использованию СПГ в качестве основного топлива и могут быть дооснащены системой накопления энергии в рамках стратегии декарбонизации PCL.
Судно “Pac Libra” уже приступило к рейсам: первый заход состоялся в Тутикорине (Индия) с грузом лопастей офшорных ветрогенераторов для последующей отправки в Северную Америку. Далее судно работало на маршрутах Южной Атлантики.
Проект отражает стратегию Kuok Maritime по усилению позиций в сегменте проектной логистики и диверсификации грузовой базы на фоне роста спроса на heavy lift и энергетическую инфраструктуру.
📌Kuok Maritime Group — сингапурская морская группа, основанная в 1975 году, объединяет судоходные, офшорные и логистические активы. Является частью Kuok Group, контролируемой семьёй Куок (основатель — Роберт Куок).
#ProjectCargo#KuokMaritime#PCL#MultipurposeVessels#ShippingIndustry
#Italia🇮🇹
#Comunali
#Genova
A Genova, unico capoluogo di Regione al voto, i candidati sono 7.
Il centrodestra corre con Pietro #Piciocchi, sostenuto da Fratelli d'Italia (#FdI|ECR), Forza Italia (#FI|PPE), Lega (#LSP|PfE), Noi Moderati (#NM|PPE|PPCE), Unione di Centro (#UdC|PPE), Nuovo PSI (#NPSI|PPE) e una lista civica.
Il centrosinistra corre con Silvia #Salis, sostenuta da Partito Democratico (#PD|S&D), Movimento 5 Stelle (#M5S|LEFT), Alleanza Verdi e Sinistra (#AVS|G/EFA|LEFT) e 2 liste civiche.
Altri candidati sono:
- Mattia #Crucioli, sostenuto da Uniti per la Costituzione (#UpC|Pacifisti);
- Raffaella #Gualco, sostenuta da una lista civica;
- Antonella #Marras, sostenuta da una lista che include Rifondazione Comunista (#PRC|LEFT) e #PCI|Estrema sinistra;
- Cinzia #Ronzitti, sostenuta dal Partito Comunista dei Lavoratori (#PCL|Estrema sinistra);
- Francesco #Toscano, sostenuto da Democrazia Sovrana e Popolare (#DSP|Grande tenda populista, sovranista ed euroscettica).
@TuttoElezioni