Установить свойства виджета в 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
Хоть у меня здесь и небольшая аудитория, но хочу сделать для вас важное объявление!
Мы много проводили деловых мероприятий для партнеров и созрели к проведению собственной площадки - ENERGY REGION TALKS: Форум региональных коммуникаций
Мы живем и работаем в нефтегазовом регионе, поэтому как никто другой, знаем, чем живет и дышит бизнес и общественность западных областей страны.
Увы, время расширений на крупных масштабных нефтегазовых проектах прошло. Сегодня регион нуждается в привлечении инвестиций, создании рабочих мест, реализации новых проектов и возможностей.
И немаловажную роль в инвестиционной привлекательности региона играет информационный фон и уровень коммуникаций между государством, бизнесом и общественностью.
Для обсуждения этих наболевших вопросов 15 мая 2026 года наше агентство стратегических коммуникаций «Бизнес со смыслом» (Magunaly Business) при поддержке Министерство энергетики РК, акимата Атырауской области и Нефтегазового Совета Petrocouncil проводит в Атырау I Форум региональных коммуникаций — Energy Region Talks.
Информационными партнерами Форума выступают: главные информационные издания Атырауской области - Ақ Жайық, телеканал Caspian News и Прикаспийская коммуна, информационный портал Мангистауской области - Lada.kz.
В центре внимания площадки:
— как говорить так, чтобы вас слышали все стейкхолдеры
— будущее отраслевой журналистики
— роль PR в формировании HR-бренда компаний
— доверие общества и коммуникации в регионах
— эффективные коммуникационные стратегии в период реализации инвестиционных проектов
Среди приглашенных спикеров — представители:
Министерства культуры и информации, Министерства энергетики, акиматов Атырауской и Мангистауской областей, КазМунайГаз, ТШО, NCOC, отраслевые эксперты, ведущие региональные медиа, СМИ и лидеры мнений.
Форум состоится в Атырау в Infinity Event Hall
📅 Дата: 15 мая 2026
Это площадка для открытого диалога между бизнесом, государством и обществом — здесь формируются смыслы и доверие.
👉 Регистрация по ссылке Energy Region Talks
#EnergyRegionTalks#PR#Коммуникации#Нефтегаз#Atyrau#BusinessWithMeaning
Did you know these cities rest on or between 2 continents?
● Suez, Egypt, sits between Africa and Asia, near the Suez Canal.
The following cities lie on both Europe and Asia:
● Istanbul, Turkey, divided by the Bosphorus Strait.
These cities as well, but split by the Ural River:
● Magnitogorsk, Russia
● Orenburg, Russia
● Atyrau, Kazakhstan
🌍
[Read more]
@googlefactss
#TranscontinentalCities#Istanbul#Suez#Magnitogorsk#Orenburg#Atyrau#WorldFacts
Забытые легенды промышленности Казахстана. Часть 4.
Сегодня Атырау - это нефть. Но еще 30-40 лет назад город был «мозговым центром» сложнейшей химии нашей страны. История Гурьевского химического завода им. 50-летия Октябрьской революции (Атырауский химзавод, АХЗ) - это урок того, как технологический гигант может пасть из-за одного неверного решения.
📊 Масштаб комплекса: Цифры, которые впечатляют.
АХЗ не просто производил «химию», он закрывал критические потребности целой страны, вместе с Актюбинским химическим комбинатом на Западе страны:
Полипропилен: 30 000 тонн в год - мощность итальянской линии Montedison, запущенной в 1977 году. Это было первое и крупнейшее производство такого типа в Центральной Азии.
Борная продукция: Завод обеспечивал до 50% потребностей всего СССР в высокочистой борной кислоте, необходимой для атомных реакторов и медицины.
Социальный капитал: На пике на предприятии трудилось более 3 500 специалистов, для которых был выстроен целый жилой микрорайон.
👤 Лидеры: Строители и Спасатели.
«Красные директора», которые за 20 лет превратили завод в индустриальный город. При них АХЗ стал прибыльным экспортером, поставлявшим продукцию в 15 стран мира.
Халидулла Канатович Саткаев: Человек, принявший вызов в 1998 году. В эпоху АО «Полипропилен» он стал главным визионером нефтехимии Казахстана, разработав первую государственную программу развития отрасли.
⚡Роковая точка: Смерть от «рубильника».
В 1997 году за долги перед энергетиками заводу внезапно в любой момент могли отключить электроэнергию.
Для производства полипропилена это означало физическую смерть. Происходит «закозление»: расплавленный полимер застывает прямо в реакторах и километрах трубопроводов.
Оборудование стоимостью в десятки миллионов долларов может превратиться в пластиковый монолит за несколько часов. Очистить его будет технически невозможно, а у предприятия многомиллионные долги за электроэнергию.
📈 Инвесторы и наследие.
Последовали годы банкротства:
Томский период (2000-е): Инвесторы из Томска (ЗКМЗ) пытались реанимировать производство, но столкнулись с непомерными тарифами и разрушенной логистикой.
Группа SAT: Под руководством Саткаева предпринимались попытки интегрировать остатки завода в новые проекты, но «старая площадка» была признана нерентабельной.
Сегодня: Территория раздроблена на десятки ТОО. Но дух АХЗ живет в новом проекте KPI на Карабатане - это долгожданная реинкарнация идей, которые закладывались десятилетия назад.
💡 Урок для бизнеса.
История АХЗ учит: технологическая сложность требует не только инвестиций, но и защиты на государственном уровне. Мы потеряли 25 лет и уникальную инженерную школу, чтобы сегодня начинать этот путь заново.
#Industry#Petrochemicals#History#Atyrau#Management#BusinessCase#KPI#ChemicalIndustry#Атырау#ИсторияПромышленности#АХЗ