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 слични објави

Пребарај: #ginplace

当前筛选 #ginplace清除筛选
Regina Bar

@reginabargin · Post #206 · 11.03.2025 г., 17:12

История бренда Mirabeau (Мирабо) связана с именем британца Стивена Кронка и его супруги Джинни, которые в 2009 переехали из Лондона в Прованс и основали компанию по производству розе. Немного от автора: Для начала мы думали, что сможем купить виноградник и делать вино из собственного винограда, но быстро поняли, что на деньги, которые я получил после увольнения, и на деньги от продажи нашего дома этого не сделать. У нас не было — и до сих пор нет — таких ресурсов, как у Джеймса Дайсона, у которого неподалёку есть винодельческое хозяйство, или у Брэда Питта, чей замок находится за холмом. Вместо этого мы арендовали дом в Котиньяке, в получасе езды от Экс-ан-Прованса, и сосредоточились на поиске лучшего винограда у местных виноградарей и его смешивании для создания лучших розовых вин. В 2010 году мы выпустили наше первое отмеченное наградами кюве Mirabeau Classic, а сейчас продаём его в 45 странах мира, выпуская четыре коммерчески доступных вина и 100 000 бутылок в год. Мне до сих пор приходится ущипнуть себя, когда наши вина получают отличные отзывы или завоевывают очередную медаль на дегустации, потому что это воплощение мечты. (С) На основании такой востребованности вина, Кронги, решили создать ультра-премиальный джин, связанный с британским происхождением - London dry, но не так прямолинейно. Для изготовления джина Mirabeau используют виноградный спирт и различные ботаникалы. Напиток был вдохновлён ароматом растений, которые растут в винодельческом поместье недалеко от Сен-Тропе, и всемирно известной парфюмерной историей этого места: Цедра ментонских лимонов, кориандр, корни ириса и дягиля, лепестки роз сорта Rose de Mai, лаванда, жасмин, тимьян и розмарин. Джин Mirabeau Rose Gin Dry имеет множество наград с международных конкурсов: обладатель золотой медали — World Gin Awards 2020 Design; серебряный призёр — World Gin Awards 2020; серебряный призёр — San Francisco World Spirits Competition; обладатель золотой медали «Дизайн» — San Francisco World Spirits Competition; серебряный призёр 90 баллов — IWSC 2020; обладатель золотой медали — Meininger's International Spirits Award ISW 2020. Он розовый, прекрасный, с красивой айдентикой, подчеркивающей его происхождение. И Mirabeau - один из редких джинов, которые мы в Реджине не ротируем от недели к неделе, а держим на полке всегда. #gin#ginplace#regina