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

Резултати

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

Пребарај: #dcstudios

当前筛选 #dcstudios清除筛选
Geex 👾

@GeexNoticias · Post #378 · 02.02.2023 г., 12:23

🟣 | Swamp Thing: James Mangold podría dirigir la película más terrorífica de #DCStudios Mangold es un veterano del cine basado en cómics después de escribir, dirigir y ser productor ejecutivo de una de las piezas más celebres del género, Logan, la tercera película de la saga de Lobezno protagonizada por Hugh Jackman, así como de otras entregas relacionadas con el mutante. Pronto estrenará 'Indiana Jones y el Dial del Destino', que llegará a los cines en mayo Swamp Thing sería su nuevo proyecto, algo que sucede apenas 24 horas después del reinicio de DC Studios y su universo,

Hashtags

Geex 👾

@GeexNoticias · Post #373 · 02.02.2023 г., 11:48

James Gunn habla sobre el futuro de Gal Gadot y Ezra Miller en #DCStudios Aunque conozcamos ya las primeras películas y series que veremos en ese arranque de la nueva DC de Warner Bros. Discovery, de momento no conocemos quiénes serán los actores que den vida a los nuevos protagonistas, es decir: quién será el nuevo Superman, quién se meterá en el traje del nuevo Batman, etc. James Gunn aseguró que la anterior historia del universo DC "había sido una mierda", puesto que era inconexo y confuso. El cineasta ha ido despejando dudas de los fans poco a poco con respecto a este reboot, y ha abordado también qué pasará con Gal Gadot y Ezra Miller después de hablar sobre que paso con Henry Cavill y que papel jugará Jason Momoa

Hashtags

Geex 👾

@GeexNoticias · Post #374 · 02.02.2023 г., 11:51

Gal Gadot tiene la puerta abierta a continuar como #WonderWoman y Ezra Miller está pendiente de estrenar #TheFlash "Espero con ansias los nuevos proyectos, pero estoy decepcionado con que hayáis perdido a Henry Cavill y Gal Gadot y todavía tengáis a Ezra cerca. Es un cabeza hueca, y Henry y Gal lo han hecho todo bien. Simplemente no tiene sentido", comentaba un seguidor a James Gunn en Instagram A lo que el cineasta respondió: "No hemos perdido a Gal. La película de Ezra ya está hecha. Y Henry no encaja con mi Superman". ¿Qué quiere decir exactamente esto? Que Gal Gadot tiene la puerta abierta de par en par a continuar siendo Wonder Woman en el reboot y que Ezra Miller tiene que seguir, de momento, en #DCStudios debido a que tiene pendiente el estreno de The Flash, filme que reiniciará el DC cinematográfico por completo y dará paso a Dioses y Monstruos.