@arch_shovel · Post #383 · 12.06.2022 г., 15:15
Rossana Orlandi at Fuorisalone in 10 images. Location: Milan. Photo Marco Menghi #rossanaorlandi#designweek#milandesignweek#arch_shovel
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
Пребарај: #designweek
@arch_shovel · Post #383 · 12.06.2022 г., 15:15
Rossana Orlandi at Fuorisalone in 10 images. Location: Milan. Photo Marco Menghi #rossanaorlandi#designweek#milandesignweek#arch_shovel
@arch_shovel · Post #838 · 24.11.2022 г., 17:21
8 Architectural Installations at Dubai Design Week 2022 This year’s program is focused on designing a sustainable future. To promote this, Dubai Design Week has invited international and regional architects and designers to create installations that demonstrate creative design thinking, to introduce innovative materials, and spark conversations about the ways in which design can have a positive impact on the environment. 1. Once Upon a Forest / OBMI 2. How Much Does Your Debris Weigh? / Quartz Architects 3. IOTA / Karim Tamerji and Elias El Hage 4. Grounded in Hope / Grounded Design 5. Seven Cypresses (Seven SARV) / Banafsheh Hemmati 6. Suhail Design / Reem Al Bustani 7. KIN / FADAA 8. Al Gargoor / Sara Alrayyes #arch_shovel#designweek#dubai#architecture#installation
@arch_shovel · Post #374 · 12.06.2022 г., 11:05
Nine design pieces from the Salone del Mobile 2022. 1. Biomorphic, The value of research for De Castelli. 2. Ixa, Foster+Partners for Artemide. 3. Loop, India Mahdavi for Gebrüder Thonet Vienna. 4. Riace, Ronan & Erwan Bouroullec for Magis. 5. Design Re-Generation. Università Statale di Milano, Via Festa del Perdono 7. 6. La Manufacture. Museo Poldi Pezzoli, Via Manzoni 12, Milan. 7. Tom Dixon, Twenty. Palazzo Serbelloni, corso Venezia 14. 8. Montbook, Giulio Iacchetti. Temporary Shop, via Palermo 18, Milan. 9. Again from the Earth’s Foundation. Fondazione Giangiacomo Feltrinelli, Via Pasubio 5, Milan. Photo Marco Menghi More on domusweb.it #designweek#milandesignweek#salonedelmobile#arch_shovel#milano
@arch_shovel · Post #393 · 12.06.2022 г., 18:20
The most Instagrammable installation of Milano Design Week 2022. During Milan design week, designer Daniel Arsham teamed with bathroom and kitchen manufacturer Kohler to create a walking interpretation of a "sink" at a Baroque mansion. The piece, dubbed Divided Layers, is made up of seven stacked white panels that form a tunnel that is entered through a platform flanked by a water feature. #milandesignweek#milan#designweek#danielarsham#arch_shovel