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

Пребарај: #1920е

当前筛选 #1920е清除筛选

В Инстаграме есть такой аккаунт, LGBT History, созданный двумя энтузиастами Мэтью Римером и Лейтоном Брауном. Когда-то это была коллекция фотографий с прайдов и квир-активизма, а теперь – большой проект. За годы его ведения авторы исследовали историю американского движения за права квиров вдоль и поперёк, общались со многими знаковыми личностями – в общем, в какой-то момент стало очевидно, что пора писать книгу. “Мы везде: Протест, сила и гордость в истории квир-освобождения” (2019) начинается как очередной фотоальбом с фотографиями с прайдов и протестов, но на самом деле это объёмная и обширная летопись квир-активизма, от 1920х до конца 1990х годов, с опорой на архивные материалы и личные интервью. Такой взгляд хорошо показывает, что Стоунволл хоть и был значимым событием, не стал отправной точкой, как многие считают – и авторы это хорошо показывают. Что ещё они хорошо показывают, так это неоднородность квир-движения и все вызванные этим противоречия: геи против лесбиянки, лесбиянки против транс-людей, транс-люди против и тех, и других, и все вместе – против бисексуалов. Не все активисты, разумеется: Ример и Браун показывают множество прекрасных людей, которые делали всё возможное, чтобы примирить и объединить сообщество. Некоторые лица, впрочем, либо не упомянуты вовсе, либо упомянуты вскользь, как Сторме ДеЛарвери. Иногда авторы слишком уж скачут по событиям, не уделяя должного внимания последствиям (или их отсутствию), но это, наверное, неизбежно, учитывая масштабы. Зато всё изложено легко, но не поверхностно. Главное – запомнить множество имён. Мне кажется, это хороший, даже вдохновляющий вариант для тех, кто хочет поглубже познакомиться с квир-активизмом США и, возможно, понять кое-какие вещи, происходящие сейчас. Книга очень тяжёлая (под 400 мб), поэтому делюсь ссылкой на скачивание Подписаться | #книги#рекомендации#США#1920е#1950е#1960е#1970е#1980е#1990е