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

Резултати

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

Пребарај: #laiwen

当前筛选 #laiwen清除筛选

Когда-то у меня была навязчивая идея — я хотела собрать подборку разных романов о протестах (особенно студенческих) и проанализировать, как авторы работают с такого рода нарративами. Годы идут, а руки так и не дошли. Может, грядущая новинка издательства "Бель Летр" меня подстегнёт, ведь когда-то я уже начинала читать этот роман на английском... Лай Вэнь. Площадь Тяньаньмэнь (Lai Wen. Tiananmen Square, 2024) ⚫Писательница родилась в Китае в 1970-м г., но покинула его в 1989 г. после протестов. Сейчас она живёт в Великобритании Аннотация: Пекин 1970-х годов. Лаи живет с родителями, бабушкой и младшим братом в небольшой квартире в рабочем районе. Её бабушка — грозная фигура, бескомпромиссная, но любящая свою внучку, а её стареющая красавица-мать попрекает её отца — опустившегося человека, который нашёл убежище в своей работе. По мере взросления Лаи начинает понимать реалии страны, в которой она живёт: ранняя встреча с полицией преследует её долгие годы. Отец заставляет её понять, что его спокойствие — это реакция на пережитое, а старый книготорговец тонко знакомит её с идеями и романами, которые открывают её разум новому. Параллельно Лаи переживает то, что переживает любой человек в юности: взлёты и падения дружбы, проблемы и поражения дома и в школе, первые шаги и ошибки в любви. Одарённая студентка Лаи получает стипендию на обучение в престижном Пекинском университете; там она встречает новых друзей и начинает участвовать в студенческих протестах, которые набирают обороты. Это конец 1980-х, и перемены витают в воздухе... Источник: прочесть, а не смешивать #China#novel#LaiWen#TiananmenSquare#анонсы

Прочитала две трети "Площади Тяньаньмэнь" Лай Вэнь. До восстания всё ещё не дошла, зато, как и ожидала, словила немало параллелей с "Домом на солнечной улице" Можган Газирад. Вот самые очевидные: ⚫В центре обеих историй — взросление девочек и их осознание себя в пространстве, причём с автобиографическими нотками, что особенно подкупает ещё на моменте знакомства с аннотацией. В иранской истории "внешнего мира", который беспощадно и с ноги вторгается в жизни простых людей, оказалось гораздо больше, чем в китайской, но с одинаковым усердием подчёркивается значимость семей и особенно уходящего поколения бабушек-дедушек, которые, может, многого уже не понимают, но всё равно создают вокруг себя безопасное пространство для неокрепших юных сердец. ⚫Обе девочки в детстве пережили травмы, связанные с режимом, обе впоследствии находят спасение в литературе. Причём в литературе в том числе и русской — Лай восторгается Достоевским и его "Преступлением и наказанием", а Можи — "Анной Карениной" Толстого. Выборка типичная, обстоятельства разные (в иранской истории чтение сопряжено с риском, что создаёт особую линию напряжения), но стабильность упоминания русской классики не может не радовать. #Иран#США#МожганГазирад#ДомНаСолнечнойУлице#China#LaiWen#TiananmenSquare#crossroads