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

Резултати

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

Пребарај: #contract

当前筛选 #contract清除筛选
Ryu일무이

@ryu1moo2 · Post #3958 · 05.04.2026 г., 03:02

#메모리#Spot#Contract DDR 가격은 폭락하고 있지만, 시장의 해석은 잘못되어 있다. 리테일(소비자용) DDR5 가격은 하락했지만, 하이퍼스케일러들은 계약 기준으로 분기 대비 +90~95% 높은 가격을 지불하고 있다. 리테일은 게이밍 PC용 DDR5를 구매한다. 반면 하이퍼스케일러는 스택당 350달러 수준의 HBM3E를 구매한다. 따라서 TurboQuant 심리 영향으로 리테일 DDR5 가격이 29% 하락했다는 것은, 단순히 소비자용 게이밍 RAM 가격을 반영한 것이다. 그러나 Micron Technology의 매출은 HBM, 서버용 RDIMM, 기업용 SSD에서 발생하며, 이 영역들은 가격 변동이 거의 없다. 시장이 반복적으로 만드는 오해는 여기서 발생한다. 현재 Samsung, SK Hynix만이 소비자용 DRAM의 주요 공급자로 남아 있으며, Micron이 이 시장에서 이탈한 상황이다. 심지어 SK Hynix도 뒤따를 가능성이 거론된다. 결론은 단순하다. 두 개의 완전히 다른 시장이다. 혼동하면 안 된다.

US President Donald Trump congratulated Shavkat Mirziyoyev on Uzbekistan Airways’ largest-ever order of 22 Boeing 787 Dreamliner aircraft worth over $8 billion. Mirziyoyev also met with Boeing CEO Brendan Nelson in New York. https://yep.uz/en/2025/09/trump-congratulates-mirziyoyev-boeing-2/ #trump#mirziyoyev#boeing#uzbekistanairways#787dreamliner#aircraft#usa#contract#aviation