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

Резултати

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

Пребарај: #secretsofbusiness

当前筛选 #secretsofbusiness清除筛选
Отель «Пекин», 📍Москва

@hotelpekingmoscow · Post #16 · 25.02.2022 г., 20:53

Гостеприимство - качество, которое складывается из первобытной простоты и античного величия. (Сара Бернар) Согласны? А что для вас гостеприимство, делитесь в комментариях. #гостеприимство#яработаювотеле#историягостеприимства#секретыуспеха#отельеры#secretsofbusiness#hintsandtips

Отель «Пекин», 📍Москва

@hotelpekingmoscow · Post #68 · 26.02.2022 г., 00:13

Когда в Москве появились первые гостиницы? Рассказываем в нашей рубрике #секретыгостеприимства История гостиниц в Москве уходит своими корнями далеко в прошлое, когда вокруг небольшого поселения начало зарождаться Московское княжество. Прообразом гостиниц являлись постоялые дворы, где путники, приезжавшие в Москву, могли получить кров и пищу. Размещались приезжие также и при монастырях. В 16 веке в связи с бурным развитием торговли в Москве стали появляться гостиные дворы, где помимо помещений для отдыха были устроены лавки, склады, предоставлялись возможности для совершения торговых сделок. Дворы возникали по национальному признаку. Так был английский, армянский, греческий, немецкий двор. Гостиный двор для русских купцов, торговавших еще в шестнадцатом веке на территории нынешнего Кремля, создали на месте ныне существующего по улице Ильинке, 4/Варварке, 3 по указу Ивана Грозного в 1574 году. #гостеприимство#tipsandhints#secretsofbusiness#историягостиниц#гостиницымосквы#отельвмоскве#историческиеотели

Отель «Пекин», 📍Москва

@hotelpekingmoscow · Post #85 · 26.02.2022 г., 01:23

Как известно, сегодня в России деятельность гостиниц регламентируется “Правилами предоставления гостиничных услуг”, которые разрабатываются и утверждаются правительством. Интересный факт, что данный свод правил существовал еще в древней Руси. Носил он название “скра” и его по праву можно считать прародителем современного документа. Разработан он был изначально для гостиных дворов и регламентировал практически все: правила оплаты, противопожарной безопасности и даже поведения за столом. Делитесь в комментариях, о чем ещё хотели бы узнать? #secretsofbusiness#tipsandhints#секретыгостеприимства#гостеприимство#историягостеприимства#гостиницапекин#отельпекин#pekinghotelmoscow#hotelpekingmoscow #пекинотель#hospitality#historyofhospitality

Отель «Пекин», 📍Москва

@hotelpekingmoscow · Post #180 · 26.02.2022 г., 06:43

Хороший сон - основа всего, поэтому мы #pekinghotelteam уделяем особое внимание качеству постельного белья. В номерах мы используем постельное белье из сатина. В переводе с французского “сатин” означает атлас. Крученая хлопковая нить хорошо отражает свет, напоминая тем самым шелк. На таком белье приятно спать - оно отлично пропускает воздух, не вызывает раздражение кожи, прекрасно сохраняет тепло и подходит детям. #secretsofbusiness#tipsandhints#hospitality#гостеприимство#pekinghotelmoscow#hotelpekingmoscow#hotelpeking#hotelpekin#pekinhotelmoscow#hotelpekinmoscow#гостиницапекин#отельпекин#отельпекинмосква#гостиницапекинмосква