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

Резултати

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

Пребарај: #artelmobile

当前筛选 #artelmobile清除筛选
Artel

@artelelectronics · Post #205 · 16.03.2021 г., 09:41

💫 O'ziga hos Т10 smartfoni foydalanishda qulay, ko'p funksiyali va sodda boshqaruvga ega. ✨Akkumulyator- 4050 мАc; ✨Asosiy kamera - 48 Мp + 8 Мp + 2 Мp; ✨Old kamera - 16 Мp; ✨Ekran o'lchamlari - 1080x2340pх (19.5:9). ______________ 💫Лаконичный смартфон Т10 прост в использовании, но многофункционален и удобен в исполнении. ✨Батарея - 4050 мАч; ✨Основная камера - 48 Мп + 8 Мп + 2 Мп; ✨Фронтальная камера - 16 Мп; ✨Разрешение - 1080x2340pixel (19.5:9). #Artel#ArtelMobile#T10

Artel

@artelelectronics · Post #161 · 17.02.2021 г., 13:24

🌈Air - HD + formatida yorqin ranglarni aks ettiruvchi samarali smartfon. ✨Operatsion tizim - Android 10 Q; ✨Ekran o'lchamlari - 720x1600 pixel (20:9); ✨Displey turi - tomchi; ✨RAM -4 Gb; ✨ROM - 64 Gb; ✨Akkumulyator - 4000 мАs; ✨Asosiy kamera - 16 Мp + 8 Мp + 2 Мp; ✨Frontal kamera - 13 Мp. _________________ 🌈Air - производительный смартфон, отображающий яркие краски в формате HD+. ✨Операционная система - Android 10 Q; ✨Разрешение - 720x1600 pixel (20:9); ✨Тип дисплея - капля; ✨RAM -4 ГБ; ✨ROM - 64 ГБ; ✨Батарея - 4000 мАч; ✨Основная камера - 16 Мп + 8 Мп + 2 Мп; ✨Фронтальная камера - 13 Мп. #Air#Artel#ArtelMobile

Artel

@artelelectronics · Post #100 · 28.12.2020 г., 07:19

📱Smarfonning barcha imkoniyatlaridan to'lig'icha foydalaning! ⚡️Artel Air quvvati Wi-FI, mobil internet, messendjer va brauzerlardan faol tarzda foydalanganingizda ham bemalol 1 kunga yetadi. ✅Android - 10 Q; ✅Akkumulyator 4000 mAs; ✅Xotira 64 GB; ✅Asosiy kamera- 16 Mp + 8 Mp + 2 Mp; ✅Frontal kamera - 13 Mp. __________ 📱Используйте смартфон на полную катушку. ⚡️Заряда аккумулятора Artel Air хватит на целый день с включенными Wi-Fi, мобильным интернетом, мессенджерами и браузерами. ✅Android - 10 Q; ✅Аккумулятор 4000 mAч; ✅Память 64 Гб; ✅Основная камера- 16 Мп + 8 Мп + 2 Mп; ✅Фронтальная камера - 13 Mп. #artel#arteluz#artelmobile#artelair Bizning saytimiz | Facebook | Instagram

Artel

@artelelectronics · Post #214 · 19.03.2021 г., 12:32

📱F2 - biznes muzokaralar uchun mo'ljallangan bejirim tugmali telefon. ✨Xotira - ROM 4MB + ОЗУ 4MB; ✨Akkumulyator - 800mAs; ✨O'lchamlari - 112.1 х 49.3 х 14.7 mm; ✨Micro USB, 3.5mm audio jack, yoritgich. ______________ 📱F2 - простой и компактный кнопочный телефон для делового общения. ✨Память - ПЗУ 4MB + ОЗУ 4MB; ✨Аккумулятор - 800mAh; ✨Размеры - 112.1 х 49.3 х 14.7 мм; ✨Micro USB , 3.5mm audio jack , Фонарик. #Artel#ArtelMobile#F2#telefon