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

Резултати

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

Пребарај: #cartadelaonu

当前筛选 #cartadelaonu清除筛选
Antiescuálidos

@antiescualidos · Post #11680 · 02.01.2026 г., 23:01

🇻🇪🔥🇺🇸Venezuela denuncia injerencia de EE.UU. y respalda a Irán ⚡️Caracas condenó las recientes declaraciones de Estados Unidos contra Irán, acusando a Washington de recurrir nuevamente a la confrontación como herramienta de política exterior. 🗣El Gobierno venezolano advirtió que el lenguaje de fuerza promovido por EE.UU. no solo se aparta del derecho internacional, sino que representa una amenaza directa para la paz global, reiterando su solidaridad con el pueblo iraní frente a cualquier intento de intervención externa. #NoALaInjerencia#SolidaridadInternacional #DerechoInternacional#CartaDeLaONU #EEUUAmenaza#Irán#Venezuela #PazMundial

Antiescuálidos

@antiescualidos · Post #11658 · 01.01.2026 г., 21:14

🇺🇸❌ Maduro acusa a EE.UU. de destruir el orden internacional creado tras la Segunda Guerra Mundial ⚡️El presidente Nicolás Maduro denunció que la política exterior de Estados Unidos viola de forma descarada los principios del derecho internacional consagrados en la Carta de la ONU. 🗣Según el jefe de Estado, Washington ha optado por sustituir la diplomacia por la amenaza permanente y el chantaje militar, desconociendo las normas que prohíben el uso de la fuerza entre Estados soberanos y poniendo en riesgo la paz global. #DerechoInternacional#CartaDeLaONU #NoALaGuerra#EEUUAmenaza #VenezuelaSoberana#PazMundial #Multilateralismo

Antiescuálidos

@antiescualidos · Post #11634 · 26.12.2025 г., 20:47

🔥🌍 Yván Gil: el silencio ante EE.UU. nos acerca a una guerra mundial ⚡️El canciller venezolano aseguró que la escalada militar estadounidense en el Caribe representa un ataque directo a la paz mundial y al sistema multilateral construido tras la Segunda Guerra Mundial. 🗣“No estamos enfrentando una agresión contra Venezuela, estamos enfrentando una agresión contra el derecho internacional y la Carta de la ONU”, sentenció Gil, advirtiendo que callar ante este peligro podría llevar a la humanidad a las puertas de un nuevo holocausto y una nueva guerra mundial. #ZonaDePaz#NoALaGuerra#EEUUAmenaza #DerechoInternacional#CartaDeLaONU #VenezuelaSoberana#CaribeZonaDePaz #PazMundial

Antiescuálidos

@antiescualidos · Post #11710 · 07.01.2026 г., 23:23

❌🌍 Benín denuncia ataque de EE.UU. contra Venezuela como ilegal ⚡️Benín expresó su solidaridad con Venezuela y condenó el bombardeo estadounidense, señalando que se trata de una acción contraria al derecho internacional y a la Carta de la ONU. 🗣La declaración refuerza las denuncias sobre el uso unilateral de la fuerza por parte de Washington, que ignora los mecanismos multilaterales y actúa al margen de la legalidad internacional. #BeninConVenezuela#NoALaAgresión #DerechoInternacional#CartaDeLaONU #Soberanía#PazMundial #EEUUAmenaza#SolidaridadInternacional

Antiescuálidos

@antiescualidos · Post #11626 · 25.12.2025 г., 17:06

🚨🇺🇸Bloqueo armado = crimen internacional ❗️La ONU desmontó la narrativa de EE.UU.: no existe derecho alguno para imponer sanciones mediante un bloqueo militar. Washington está violando abiertamente la Carta de la ONU, el derecho internacional y los principios básicos de derechos humanos. El despliegue militar en el Caribe y la confiscación de petroleros no buscan “seguridad”, buscan asfixiar a un país soberano y apropiarse de sus recursos. Es piratería moderna con bandera estadounidense. #BloqueoEsGuerra#EEUUAmenaza#NoAlBloqueo #DerechoInternacional#CrimenDeAgresión #VenezuelaSoberana#PirateríaModerna #CartaDeLaONU#DerechosHumanos