@american_observer · Post #5370 · 13.03.2026 г., 20:02
#fertilizers#cost#trump 📱American Оbserver - Stay up to date on all important events 🇺🇸
Hashtags
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
Пребарај: #cost
@american_observer · Post #5370 · 13.03.2026 г., 20:02
#fertilizers#cost#trump 📱American Оbserver - Stay up to date on all important events 🇺🇸
Hashtags
@seeker_rc · Post #20402 · 13.05.2026 г., 02:55
凌晨三点,我的 AI Agent 重试了一万四千次 —— 然后我写了个开源刹车 两个月前一个凌晨,Agent 卡在重试循环里,把一个月的额度跑没了。Provider 后台只告诉我"发生了什么",我需要的是"正在发生时就停下来"。 于是写了 Cost Firewall:OpenClaw 网关的本地插件,实时监控调用元数据,在重试循环 / Token 风暴 / 调用洪水 / 预算超限 四种场景下自动熔断,还有一行命令的急停: openclaw firewall stop 特意做了两件事: 1. 默认 observe 模式只观察不拦,让你看清自己的真实流量再切 protect 。 2. 不存 prompt 、不上报遥测、不需要 Mapi... via V2EX 分享创造 标签: #Agent#Cost#Firewall ⚡️探索号频道 ⚡️探索者频道 ⚡️探索者交流群 ⚡️ Youtube 频道:科技探索者 每天推荐有趣内容,欢迎订阅、转发。
@Enviro_Climate · Post #311 · 24.11.2020 г., 19:32
Climate Change and the #Cost of #Capital in #Developing_Countries Source: Imperial College Business School Read more »» @Enviro_Climate
@githubtrending · Post #14992 · 23.07.2025 г., 13:00
#go#aws#azure#cncf#cost#cost_optimization#finops#gcp#k8s#kubernetes#monitoring#opencost#prometheus OpenCost is a free, open-source tool that helps you see and understand the costs of running Kubernetes clusters and cloud services in real time. It breaks down costs by cluster, node, namespace, pod, and more, across multiple cloud providers like AWS, Azure, and GCP, and even supports on-premises setups. This lets you track where your money is going, spot expensive resources, and manage your cloud spending better. It integrates with Prometheus for metrics and offers a user-friendly web interface and APIs for easy cost monitoring and exporting. Using OpenCost helps you control and optimize your cloud and Kubernetes expenses efficiently[1][2][3][4]. https://github.com/opencost/opencost