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

Пребарај: #zhukovsky

当前筛选 #zhukovsky清除筛选
International News

@intnewsagency · Post #9027 · 29.03.2026 г., 14:20

Fire in Zhukovsky Apartment Building: Over 2,200 sq.m. Affected A fire broke out in a residential building in Zhukovsky, Moscow region, causing partial roof collapse. The blaze has been contained over an area exceeding 2,200 square meters, the Emergency Ministry reported. The cause remains unknown as specialists work on-site. District head Andronik Pak emphasized the importance of a swift investigation. #Zhukovsky#fire#EMERCOM#Moscow#emergency The main news of Russia and the world ishere.

Лёгкое небо

@legkoenebo · Post #3565 · 16.02.2025 г., 08:53

Сегодня предлагаю ознакомиться с цитатами известных людей об авиации 🔎 ⏺Леонардо да Винчи Когда ты однажды попробуешь полет, ты навсегда будешь ходить по земле с глазами, устремлёнными в небо, потому что там ты был, и туда тебе хочется вернуться. ⏺Игорь Сикорский Вероятно, самая большая ошибка инженеров — утверждать, что что-то невозможно, просто потому, что они не знают, как это сделать. ⏺Дуглас Бадер Правила придуманы для людей, которые не хотят думать. А хорошие пилоты должны думать сами. ⏺Антуан де Сент-Экзюпери Самолёт — это не цель, а средство. Настоящая цель — это небо, горизонт, мечта. ⏺Сергей Ильюшин Создать самолёт – это не только сложная инженерная задача, но и искусство. ⏺Павел Сухой Мы не должны останавливаться на достигнутом, а должны неуклонно идти вперед, так как авиационные конструкции быстро устаревают, и то, что хорошо сегодня, завтра становится только удовлетворительным. ⏺Николай Жуковский Человек не имеет крыльев, по отношению веса своего тела к весу мускулов он в 72 раза слабее птицы. Он полетит, опираясь не на силу своих мускулов, а на силу своего разума. Какие еще цитаты вы знаете? Делимся в комментариях 👇 Лёгкое небо #aviation#LeonardodaVinci#Suhoi#Sikorsky#Bader#AntoinedeSaintExupery#Ilyushin#Zhukovsky#quotes