Установить свойства виджета в 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
🆕10(1)/2026
🔗Отцы и дети: рождаемость у мужчин в России в первой четверти XXI века
Михаил Б. Денисенко 1, Ангелина И. Зинина
Пол является обязательным атрибутом изучения всех демографических процессов, кроме рождаемости, которая традиционно измеряется относительно женского населения. В последние десятилетия интерес к исследованиям рождаемости мужчин (мужской рождаемости) заметно повысился, что обусловлено переоценкой их роли в формировании и развитии семьи. Цель статьи заключается в привлечении внимания к изучению мужской рождаемости в России.
Для этого на основе данных государственной статистики были рассчитаны показатели рождаемости у мужчин за период с 2000 по 2023 г. Было установлено, что соотношение суммарных коэффициентов рождаемости мужчин и женщин в России менялось неоднозначно: до 2011 г. суммарный коэффициент был выше у мужчин, затем ситуация изменилась в пользу женщин.
Подобный феномен, как показано в статье, объясняется особенностями изменения возрастного состава населения. Анализ динамики рассчитанных коэффициентов рождаемости и среднего возраста при рождении у мужчин проводится в международном контексте. Отцы в России моложе, чем в других странах с низкой рождаемостью, но это отличие у отцов меньше, чем у матерей. При этом разница в среднем возрасте родителей в России одна из самых больших в Европе.
Исследование показывает, что изучение мужской рождаемости по российским данным возможно, и оно дополняет картину демографического развития новой аналитической информацией.
▫️Публикация в журнале осуществляется бесплатно благодаря поддержке «АКБ «Держава» ПАО» и Экономического факультета МГУ имени М.В.Ломоносова.
#population_and_economics#fertility
🌍 The Nile Delta in Egypt is so fertile that it supports over half of the country's crops, even though it covers less than 2% of Egypt’s land area. This small zone is crucial for food production. ✨
#agriculture⚡#delta⚡#fertility⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
The total fertility rate has declined
https://ourworldindata.org/global-decline-fertility-rate
https://x.com/KirkegaardEmil/status/1944229394479788351
----------------------------------------------------
#fertility#dysgenics#intelligence
🎙️Science Fact: Women's voices sound more attractive when recorded during their most fertile time of the month. 🎶
Studies show listeners rate these voices higher and even experience a slight testosterone boost.
[Read more]
@googlefactss
#VoiceScience#Fertility#Attraction#FunFact#Biology
📰 The Baby Cartel: How God Became the World's Last Functioning Daycare
Religion isn't beating the fertility crisis with prayer alone. It's running a shadow welfare state — and winning.
A new analysis drops a thesis that's been hiding in plain sight: religious communities aren't having more babies because they believe harder. They're having more babies because they built actual infrastructure — mutual aid networks, internal credit markets, communal childcare, endogamous marriage pools — everything the secular state promised and forgot to deliver.
"Fertility requires both motivation and infrastructure," the study argues. "Norms without material support are ineffective."
Translation: your government's "have more babies" poster campaign isn't a policy. It's a vibe.
The framework identifies six interlocking mechanisms — collective childcare, internal economies, meaning narratives, intergenerational norm transfer, endogamous marriage, and residential clustering — that together turn childbearing from a financial catastrophe into a socially subsidized act. Ultra-Orthodox Jews, the Amish, and Iranian post-revolutionary society all run some version of this playbook. None of them asked Brussels or Washington for permission.
Iran is the case study nobody wants to discuss. Post-revolution, the regime pumped the ideological gas on fertility — and it worked, briefly. Then the economy ate the infrastructure. Birth rates cratered. God-talk without grocery money is just noise.
The kibbutz story is even darker for secular progressives: when collective support systems eroded, fertility dropped — even in communities still ideologically committed to "the collective." The commune dissolved. The cradles emptied.
So here's the question secular liberal democracies won't ask out loud: if your society has atomized people so thoroughly that only cults and tightly-knit religious minorities can afford to reproduce — what exactly did modernization optimize for?
The researchers frame religious communities as "analytical models," not anomalies. Read: the rest of you are the control group, and you're losing.
No hashtag needed. The data is the punchline.
#demographics#fertility#religion#welfare#modernization
📱American Оbserver - Stay up to date on all important events
🇺🇸