TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #381 · 23 окт.

Установить свойства виджета в 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

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #mandelamonth

当前筛选 #mandelamonth清除筛选
Russian Consulate in Cape Town

@rusconct · Post #2870 · 06.08.2025 г., 17:02

🎙 Comment by Russian Ambassador to South Africa Roman Ambarov to TASS (August 5, 2025) ❓Question: What charitable initiatives is the Russian Embassy in South Africa involved in? 💬Roman Ambarov: Russia has always been and remains a reliable friend of the Republic of South Africa—not only in the fields of political, economic, cultural, and educational cooperation, but also in providing humanitarian aid. In its work, the Russian Embassy in South Africa follows a principle supported by the President of the Russian Federation, Vladimir Putin: “African solutions to African problems.” We regularly take part in charitable initiatives organized by South Africa’s Department of International Relations and Cooperation during #MandelaDay and #MandelaMonth. In July of this year, together with other foreign diplomatic missions, we supported a primary school in Gauteng Province that is in dire need of funding by donating chalkboards and food for the students. I would like to emphasize that our charitable work is not limited to one-time actions. It is a year-round, systematic effort carried out by our Embassy staff. Two South African children’s institutions are under the care of the Russian diplomatic mission — the Bophelong Children’s Home in Mamelodi and the New Jerusalem Children’s Home in Midrand. Our diplomats regularly visit the children, show genuine interest in their lives and challenges, and offer help whenever possible. Our aim is not only to provide necessities but also to bring joy and positive emotions. It has already become a tradition to invite children from these institutions to screenings of Russian films, organized by the Embassy in one of Pretoria’s theaters. Last year, together with the parish of the Russian Orthodox Church in Johannesburg, we hosted a screening of the popular animated film Masha and the Bear for the children of New Jerusalem. The joy and excitement on the children’s faces as they clapped and sang along with Masha was the greatest reward for us. These events are usually accompanied by friendly tea parties with Russian pastries, as well as educational presentations about Russia, our culture, traditions, and holidays. As Nelson Mandela once said, “There can be no greater gift than giving one’s time and energy to help others without expecting anything in return.” We fully share this philosophy and try to embody it in our work. #RussiaHelps