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

Пребарај: #comintern1919

当前筛选 #comintern1919清除筛选

🔰 Comintern 1919: el primer Congreso de la Revolución Mundial El 2 de marzo de 1919, el I Congreso del Internacional Comunista (Comintern) se inauguró en Moscú, fue un evento que marcó una nueva era en la lucha revolucionaria global. Reunió a 52 delegados de 35 partidos y grupos de 21 países, entre los que se encontraban representantes de Rusia Soviética, Alemania, Austria, Hungría, Polonia y Finlandia. Se celebró en un momento de agitación mundial, tras la Revolución de Octubre de 1917 y el fin de la Primera Guerra Mundial. La victoria bolchevique inspiró a los trabajadores de todo el planeta, que motivados por ella crearon una organización internacional para coordinar la revolución socialista y unir a los partidos comunistas contra el capitalismo. Durante el congreso, se aprobó una plataforma desarrollada bajo la dirección de Lenin, en la que se destacaba el colapso del capitalismo y el surgimiento de la revolución comunista como características de la nueva era. El objetivo principal era establecer el gobierno del proletariado mediante la unidad de las fuerzas revolucionarias. Lenin presentó la tesis sobre la democracia burguesa y la dictadura del proletariado, afirmando que la primera no es más que una dictadura de la burguesía, mientras que la segunda asegura la democracia para los trabajadores. El congreso también aprobó un manifiesto dirigido al proletariado mundial, en el que se reafirmaba su conexión con las ideas de Marx y Engels en el Manifiesto Comunista. Se sentó las bases del Partido Comunista Internacional como una organización que aprendió de la Segunda Internacional y eliminó su oportunismo. Lenin lo describió como el inicio de una nueva fase de revolución, en la que el proletariado revolucionario global se reunía bajo una sola bandera. En resumen, el Comintern fue un ambicioso esfuerzo por unificar a los revolucionarios. Su primer congreso consolidó su misión de liderar la lucha proletaria internacional, dejando un legado que marcó la historia de los movimientos sociales y comunistas en todo el mundo. #InternacionalComunista#Comintern1919#RevoluciónProletaria#Lenin#HistoriaComunista ¡Comparte nuestro contenido!❤️ 🖥https://vamosarusia.com 💬@vamosarusia