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

Пребарај: #reumatology

当前筛选 #reumatology清除筛选
Doctor Ziyod 🩺

@doctor_ziyod · Post #333 · 01.04.2023 г., 05:35

❗️NUTVA га қўнғироқ қилдим! Ролни ишонарли ўйнадим деган умиддаман. Ҳаммаси сизлар учун! 😄 Ҳуллас: 1️⃣Чек берилмас экан. Ооозгина ноқонуний иш эмасми? 2️⃣Аллергия бермас экан. Лекин маҳсулот экстрактлардан иборат бўлса, таркибида оқсил ҳам бўлади. Аллергия одатда оқсилларга кузатилади. Оқсил борми, демак аллергия бўлмайди деб айта олмаймиз. 3️⃣Коксартроз юқувчи касаллик экан, бир бўғимдан бошқасига юқар эмиш... 🙈 4️⃣Ножуя таъсир қилмайди деяпти. Лекин фақатгина таркибида ҳеч нима йўқ восита ножуя таъсирсиз бўлиши мумкин. 5️⃣Мелатонин таркибида йўқ деяпти-ю, сайтида аниқ мелатонин деб ёзиб қўйилган. Лекин исталган саволга "15та гиёҳдан тайёрланган..." деб жавоб бериш жуда қулай экан, нима дейишни ҳам билмайсан 😄 #reumatology#drugs

Doctor Ziyod 🩺

@doctor_ziyod · Post #440 · 13.05.2023 г., 04:01

⚠️МАВЗУНИ ҚИДИРИШ! Сизга керак мавзуларни # хэштеглар ёрдамида топинг. Кўк рангдаги сўзларни устига босиб ўша мавзу бўйича барча мақолаларни топинг. Мана бу ерда👇 Йўналишлар бўйича: - Аллергология 👉#allergy - Гастроэнтерология (ошқозон-ичак) 👉#gastroenterology - Гематология 👉#hematology - Гинекология 👉#obsgyn - Дерматология (тери) 👉#dermatology - Иммунология (иммунитет) 👉#immunity - Инфекция (юқимли касаликлар) 👉#infection - Кардиология 👉#cardiology - ЛОР 👉#LOR - Неврология 👉#neurology - Онкология 👉#oncology - Ортопедия 👉#orthopedics - Офтальмология 👉#ophthalmology - Педиатрия (болалар) 👉#pediatrics - Ревматология (бўғинлар) 👉#reumatology - Стоматология 👉#stomatology - Тез ёрдам 👉#emergency - Урология 👉#urology - Хирургия (жарроҳлик) 👉#surgery Бошқа категориялар: - Дорилар 👉#drugs - Витаминлар 👉#vitamins - Минераллар 👉#minerals - БАДлар 👉#supplements - Таомланиш 👉#nutrition - Қисқа лайфхаклар 👉#tips - Шунчаки фактлар 👉#facts Бир ойда чиққан постлар рўйҳати👉#monthly Профессионаллар расмдагидек қидирса ҳам бўлади.