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

Пребарај: #berdasheva

当前筛选 #berdasheva清除筛选

ДЕНЬ "КАЛЕВАЛЫ": ИСТОРИЯ 28 февраля 1835 года финский врач и фольклорист Элиас Леннрот, подписав инициалами "E.L." предисловие к эпосу "Калевала", передал рукопись в типографию. Этот день войдет в историю как День "Калевалы". Первый раз День «Калевалы» отметили в 1865 году в связи с 30-летием выпуска первого издания эпоса. Финляндия на тот момент входила в состав Российской Империи в качестве Великого княжества Финляндского, а значит можно считать, что День «Калевалы» был общим праздником. «Калевалу» знали и изучали и в Суоми и в России. Столетие первого издания эпоса в 1935 году Финляндия уже встречала самостоятельным государством. Основой и фундаментом финского национального сознания был именно эпос «Калевала». В Российской Карелии также событие не осталось незамеченным, но более того – объединило научные силы исследователей по обе стороны границы. Однако, военные конфликты ХХ в. надолго прекратили эту совместную работу. В конце 1930-х-начале 1940-х годов, когда прошла Зимняя война, а затем и война-продолжение было, конечно, не до широких праздников. Однако, тема "Калевалы" витала не только в научных кругах, а все больше использовалась для пропаганды и уже не сходила с передовиц газет и журналов, теснясь рядом с боевыми сводками. К Дню "Калевалы" 1943 года стало ясно, что Германия не выиграет войну и что мирные условия могут быть жесткими для Финляндии. Газеты сменили риторику и в отношении "Калевалы", и в отношении политических взглядов на национальные вопросы. В Советском союзе в послевоенные годы юбилейные Дни "Калевалы" проходили с большим размахом. В 1948 году, в год 99-летия полного издания поэмы Элиаса Леннрота, был объявлен всесоюзный конкурс художников на создание иллюстраций к эпосу. Власти готовились к вековому юбилею первого полного издания эпоса. В 1949 году уже 9 января вышло «Постановление Политбюро ЦК ВКП(б) о мероприятиях по проведению 100-летия со времени издания карело-финского эпоса «Калевала»». В рамках празднования проходили концерты с выступлением сказителей и рунопевцев, которые не только заучивали руны из леннротовской "Калевалы", но и сами писали руны нового времени: про Антикайнена и Сталина, про советские стройки и жизнь в колхозах, а также хвалебные песни в честь коммунистического правительства. Власть такие песни, конечно, любила и щедро одаривала грамотами и титулами. Малограмотные колхозники-кантелисты и исполнители народных рун становились членами Союза писателей, при этом писать литературные произведения и тем более издаваться было совсем не обязательно. В 1970-80 гг. праздники с фокусом на калевальскую поэтику проходили в рунопевческих деревнях не только в конце февраля, но и в летние месяцы. Деревни очень долго хранили традиции предков, отмечая праздники с христианским и языческим подтекстом: Иванов день, Петров день… В Советском союзе у властей была другая идеология, поэтому дедовские праздники легко маскировались в праздники с фольклорным уклоном, с выступлением местной самодеятельности. Уже многие годы День "Калевалы" отмечается и в Финляндии, и в России: проходят научные конференции, детские музейные праздники, конкурсы чтецов и иллюстраторов эпической поэмы и другое. «Калевала» все ещё интересует современное сообщество, объединяя людей для совместной исследовательской работы и творческого переосмысления общего наследия. Текст и фото: Татьяна Бердашева #berdasheva#kalevala#historia#karelia#28февраля