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

Резултати

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

Пребарај: #endthesiege

当前筛选 #endthesiege清除筛选
Freedom Flotilla Coalition

@FFC_official_channel · Post #282 · 22.05.2025 г., 08:57

We will sail. Since our ship was attacked on May 2, Israel has killed nearly 2,000 more Palestinians. Meanwhile, 14,000 babies now face imminent death from hunger due to Israel’s deliberate starvation campaign. This is the cost of global impunity. But we refuse to back down. The ‘Madleen’ will sail soon. She may be small, but her mission is powerful: To break the silence. To challenge Israel’s illegal blockade through nonviolent direct action. To stand firmly and unapologetically, with Gaza. JOIN US. Registrations are open for experienced and committed captains, crew, volunteers, and boat owners. You will be vetted and contacted only if successful: https://bit.ly/joinfreedomflotillaform To those who can help us on land, sign our petition for an investigation into the attacks, demand your governments ensure safe passage for the 'Madleen’, and share this journey - because the more eyes on us, the safer we are. #WeWillSail#Madleen#Conscience#FreeGaza#EndTheSiege#AllEyesOnDeck#StopArmingIsrael

Freedom Flotilla Coalition

@FFC_official_channel · Post #661 · 21.07.2025 г., 11:20

Amazon Labor Union leader Chris Smalls is on the 'Handala', the 37th ship to challenge Israel’s illegal siege on Gaza. Amazon has invested billions in intelligence like the Nimbus project, used for the surveillance and targeting of Palestinians. Chris shares that “…an injury to one is injury to all,” calling on labor unions worldwide to fulfill their responsibility: to be the shield for the working class, which includes protecting Palestinian people, and urges unions to stop their shipments of arms to Israel, fuelling their genocide in Gaza. “We come with baby food, toys, medicine, and hope — not just for Gaza, but for the future of our children in America back at home. The world is watching.” #FreePalestine#LaborForPalestine#EndTheSiege#Handala#UnionSolidarity#GazaFlotilla#AmazonComplicity