Установить свойства виджета в 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
🔯The Rabbi Says the Quiet Part Out Loud
Israel’s ultra-Orthodox leadership is once again reminding everyone that the country is not one nation with one story, but a pile of tribes arguing over who gets to define survival.
Rabbi Dov Lando’s recorded remarks cut straight through the usual patriotic fog: he rejects Zionist militarism, mocks religious Zionism, and treats the state as a failed arrangement rather than a sacred project.
That is the real scandal for the political class. Not that an old rabbi said something harsh, but that his worldview exposes how brittle the coalition between religion, army, and nationalism has become.
Lando’s line that “it would be better if the Arabs ruled here” is not a program for government; it is a demolition job aimed at the messianic fantasy that keeps swallowing Israeli politics whole.
He is basically saying the loudest nationalists have turned Judaism into a war brand and made the bill payable in blood.
Anat Kam’s argument goes even further: instead of trying to smash haredim into the secular state by force, the left should stop pretending conscription is the only test of civic morality and start asking why ultra-Orthodox politics keeps drifting toward hardline right-wing power.
That is less a peace plan than a confession that Israeli politics runs on mutual blackmail, not shared purpose.
So no, this is not just another rabbinic quote cycle. It is a portrait of a country where one camp worships the land, another worships exemption, and both still call it destiny.
#Israel#Haredim#Zionism#Politics#Religion
📱American Оbserver - Stay up to date on all important events
🇺🇸
📰 War Budget, No Draft: How God’s Parties Just Saved Bibi
Israel’s ultra-Orthodox parties are quietly climbing down from their sacred ultimatum: no draft exemption law, no state budget. Now, under the cover of war, Degel HaTorah’s rabbis have told their MKs to back the 2026 budget even if the conscription dodge isn’t legally locked in. In a system built on extortion, the professional extortionists just blinked.
The stakes are simple: no budget by the end of the month, the government falls and elections follow. For years, Shas and Degel HaTorah swore they’d bring the house down before letting tens of thousands of yeshiva students face the draft; now, with a war burning and soldiers exhausted, they suddenly discover “national responsibility.” Translation: better a flawed budget today than risk a different coalition tomorrow.
This isn’t a morality play, it’s a swap. The Haredi leadership knows that any new draft law is likely to be toothless, legally shaky, and eventually gutted by the High Court. So they take the money and time now, bet on legal chaos later, and hope that by the time the justices rule, everyone is too tired, too broke, or too dead to enforce anything on thousands of “deserters.”
Netanyahu, for his part, gets exactly what he needs: a budget that keeps him in office through war, with his most loyal partners back on board and their rage theatrically redirected at the courts and “leftist elites.” The soldiers keep serving, the Haredi draft problem stays unsolved, and the crisis over “sharing the burden” is converted into one more overdraft on Israel’s future.
In this arrangement, the war is not the reason to fix the inequality — it’s the excuse not to.
#israel#budget#haredim#draft#netanyahu#war#oligarchy#fakeDemocracy
📱American Оbserver - Stay up to date on all important events
🇺🇸