Установить свойства виджета в 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
Simak siaran radio dari Fakultas Kedokteran Universitas Indonesia tentang "Gunakan Antibiotik dengan Bijak" dalam rangka "World Antibiotic Awareness Week 2019"
Di RRI Pro 92,2 FM, Hari Selasa, 19 November 2019 pukul 11.20 - 11.55 WIB.
#WAAW#WorldAntibioticAwarenessWeek#bijakantibiotik#gemacermat#cerdasgunakanobat
#apotekerindonesia#apotekermuda#apoteker#obat#antibiotik#farmasi#anakfarmasi#mahasiswafarmasi#ismafarsi
[World Antibiotic Awareness Week]
.
https://www.instagram.com/p/B4zuP0RpERr/?igshid=j3jrciyk4rz3
.
https://www.facebook.com/864416113651534/posts/2517062995053496/?substory_index=0
.
Setiap tahun di seluruh dunia dilaksanakan kegiatan peningkatan kesadaran dan pemahaman tentang Resistensi Antimikroba dan penggunaan antibiotik secara bijak di seluruh dunia.
.
Kegiatan yang diselenggarakan selama seminggu di bulan November dan diinisiasi oleh Badan Kesehatan Dunia (WHO) ini yang dikenal sebagai World Antibiotic Awareness Week (WAAW), diperingati juga di Indonesia.
.
Tim Pelaksana Program Pengendalian Resistensi Antimikroba (PPRA) RSUPN Dr Cipto Mangunkusumo (RSCM) bersamaan dg HUT yg ke-100 memperingati WAAW 2019 dengan berbagai kegiatan. Salah satunya yaitu siaran radio dengan topik "Gunakan Antibiotik dengan Bijak"
.
Siaran ini dapat disimak di RRI Pro-FKUI 92,2 FM, pada hari Selasa, 19 November 2019 pukul 11.20 - 11.55 WIB.
Jadi, catat waktunya, stay tuned dan jangan ketinggalan ya!
Jangan lupa juga untuk dibagikan sebanyak-banyaknya.
Yuukk gunakan antibiotik dengan Bijak, selamatkan anak cucu kita dari bakteri resisten.
.
Informasi ini disiarkan oleh Direktorat Pelayanan Kefarmasian, Ditjen Kefarmasian dan Alat Kesehatan Kementerian Kesehatan RI dalam rangka Gerakan Masyarakat Cerdas Menggunakan Obat (GeMa CerMat). Fanpage FB: Cerdas Gunakan Obat
Twitter & IG: @gemacermat
Telegram: http://t.me/cerdasgunakanobat , http://t.me/diskusiobat
Email: [email protected]
•
#gemacermat#cerdasgunakanobat
#WAAW#WorldAntibioticAwarenessWeek#bijakantibiotik
#apotekerindonesia#apotekermuda#apoteker#obat#antibiotik#farmasi#anakfarmasi#mahasiswafarmasi#ismafarsi
#WAAW2019
#PPRARSCM
https://www.instagram.com/reel/CrDlbevJPvp/?igshid=MDJmNzVkMjY=
.
Reposted, maaf pada postingan sebelumnya video terpotong.
.
[CARA MINUM OBAT LANSOPRAZOL DAN RANITIDIN]
.
Bagaimana puasa kalian, Sob?
Mudah-mudahan lancar yaa..
Apakah punya penyakit gangguan lambung?
Punya banyak obat lambung yang harus diminum?
Trus masih ragu gimana cara minum obat gangguan lambung yang benar?
Ada info penting nih dari @apoteker_rahmato
Bagaimana cara minum obat lansoprazol dan ranitidin?
Yuk simak dengan baik.
Jangan lupa dishare ya, Sob.
__
Tag siapapun :)
Please simpan, komen dan bagikan edukasi ini pada siapa saja jika dirasa bermanfaat ya sobat Farma. Thank you :)
INGAT, jangan SELF DIAGNOSIS, periksakan ke dokter terlebih dahulu, agar mendapatkan OBAT yang paling COCOK UNTUK KONDISIMU. Berbeda kondisi gangguan saluran cerna, berbeda pula obatnya.
Antasid diminum saat serangan, yang umumnya terjadi di siang hari atau larut malam, sedangkan LANSOPRAZOL dan RANITIDIN diminum 30 menit sebelum makan, mencegah serangan.
Lansoprazol 30 menit sebelum SARAPAN, dan RANITIDINE baiknya 30 menit sebelum makan malam. Lansoprazol efeknya panjang, baik saat asam DI PAGI HARI, sedangkan RANITIDIN efektif terutama untuk asam saat istrahat di malam hari.
INGAT, jangan SELF DIAGNOSIS, periksakan ke dokter terlebih dahulu, agar mendapatkan OBAT yang paling COCOK UNTUK KONDISIMU. Berbeda kondisi gangguan saluran cerna, berbeda pula obatnya.
Boparai V, Rajagopalan J, Triadafilopoulos G. Guide to the use of proton pump inhibitors in adult patients. Drugs. 2008;68(7):925-47. doi: 10.2165/00003495-200868070-00004. PMID: 18457460.
#apotekeroke#calonapoteker
#apotekerindonesiamaju#farmasi#farmasiofficial#farmasiindonesia#sumbar#palembang#indonesia#asistenapoteker#lokerapoteker#asistenapoteker#farmakologi#perawatcantik#farmasi#apoteker#vitamin#apotekermuda#farmakologi#instagram#kesehatan#kecelakaan#apotekerindonesia#diabetes#apotik#kimiafarma#apotekercantik#asistenapoteker#apotekermuda#informasiobat#apotekersahabatkeluarga