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

Резултати

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

Пребарај: #comput3

当前筛选 #comput3清除筛选
TONlines – News

@tonlines · Post #7175 · 12.05.2025 г., 15:31

Final Day for Solana Wallet Addition on RoOLZ Gods & Mortals #Solana#Comput3 The RoOLZ Gods & Mortals channel reminds users that today is the last day to add their Solana wallet for the $COM drop. A snapshot will be taken tomorrow, and the drop is scheduled for Wednesday. Source: link @tonlines

TONlines – News

@tonlines · Post #7378 · 26.05.2025 г., 15:57

RoOLZ Gods & Mortals: Join the Comput3 Reward Quest #RoOLZ#Comput3 The RoOLZ app introduces a new feature allowing users to earn rewards by engaging with communities. Comput3, the first onboarded project, offers $2K in GODL tokens for user participation. Points can be earned through social media interactions and video posts. Source: link @tonlines

TONlines – News

@tonlines · Post #7218 · 14.05.2025 г., 17:45

RoOLZ Gods & Mortals: Exciting COM Airdrop for Stakers #Comput3#Roolz The channel RoOLZ Gods & Mortals announces a significant airdrop of the COM token, rewarding top $GODL stakers and RoOLZ NFT holders. The distribution model offers enticing multipliers, boosting rewards up to 120x for the most committed stakers. Source: link @tonlines

TONlines – News

@tonlines · Post #6780 · 15.04.2025 г., 15:29

RoOLZ Gods & Mortals: Comput3 Airdrop Announcement #Comput3#GODL RoOLZ Gods & Mortals advises $GODL stakers to prepare for the upcoming Comput3 Airdrop. Participants can stake $GODL in the new pools and finish Comput3 tasks to qualify. Source: link @tonlines

TONlines – News

@tonlines · Post #7053 · 05.05.2025 г., 14:41

RoOLZ Gods & Mortals: Launch of Comput3 on Auto.Fun #Comput3#Auto RoOLZ Gods & Mortals is preparing for the launch of Comput3 ($COM) on Auto.Fun, a partner project for $GODL stakers. This event highlights the channel’s use of GPU infrastructure for AI animations and more. Source: link @tonlines

TONlines – News

@tonlines · Post #6733 · 12.04.2025 г., 10:25

⚡️RoOLZ Gods & Mortals: Comput3 Nears Token Launch #Comput3#ElizaOS RoOLZ Gods & Mortals announces that its partner, Comput3, is set to launch its token on the ElizaOS Launchpad. Comput3 offers an exciting platform providing Nvidia GPUs and opensource LLM models to developers via an API Key. The community is encouraged to support Comput3 on social media and participate in the launch. Source: link @tonlines