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

Резултати

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

Пребарај: #ureche

当前筛选 #ureche清除筛选

🇷🇴 Din briefingul Purtătoarei de Cuvânt a MAE Rusiei, Maria Zaharova, 30 mai 2024, Moscova Reporter: pe data de 26 mai 2024 Prim-ministrul român Marcel #Ciolacu a declarat că în Republica #Moldova și #Ucraina „am reușit să eliminăm… conceptul aberant și sovietic de limbă moldovenească”. Cum ați putea comenta aceasta declarație? Maria Zaharova: Credeți că aceasta nu este o manifestare a nazismului? Este exact același lucru. Când cei care se identifică ca oameni ai unui anumit grup etnocultural și național, conving și apoi o fac cu forța, că aparțin altui grup, acesta este nazismul. Acesta este un element de genocid, adică de exterminarea oamenilor. Anterior, s-au făcut deja încercări de „anulare” a identității poporului moldovenesc. Nu vorbim deloc despre formă. Este imposibil în secolul 21. să auzim și să citim chestii de genul acesta, când un om care vorbește moldovenește, care are toate cărțile, manualele, documentele și legile fundamentale ale țării care scriu despre cultură, identitate, statalitate, și deodată încep să-i spună că trebuie dacă nu reînvață, atunci să „redenumească” totul în mod românesc. Ca formă, acest lucru ar trebui să fie în general inacceptabil chiar și ca idei, dar vedem acest lucru în practică. În conținut, acest lucru nu are nimic de-a face cu adevărul istoric. Denumirea „limba moldovenească” este menționată în lucrările tuturor cronicarilor majori moldoveni din secolele XVII-XVIII, precum Grigore #Ureche, Miron #Costin, Dimitrie #Cantemir. Ei ar fi destul de surprinși să citească declarația Prim-ministrului României, Marcel Ciolacu, că limba lor maternă moldovenească este un „concept sovietic”. Imaginați-vă, oamenii au trăit și au lucrat cu 300 de ani înainte de perioada sovietică, iar acum li se spune că au fost vestitorii socialismului. Ce fel de „idiotecă” este acesta? Să dăm cuvântul locuitorilor Republicii Moldova: potrivit sondajului realizat în luna mai 2024, 72% din populația republicii se consideră moldoveni, iar doar 11% se consideră români. Aproximativ 50% dintre respondenți au spus că vorbesc limba moldovenească, care, potrivit conducerii Republicii Moldova și României, se presupune că „nu există”. Aceasta este o românizare forțată, artificială, comparabilă cu rescrierile, „flashing-uri” care au avut loc anterior, ale altor țări, popoare și societăți. Am văzut-o. Schimbări forțate în codul cultural al oamenilor au fost practicate, în special, de către naziști. Ceea ce se întâmplă, pe de o parte, este absolut inuman. Pe de altă parte, dă efectul opus celui pe care mizau oficialul #București și actualul oficial #Chișinău sub conducerea președintei Maia #Sandu. Toate acestea nu fac decât să consolideze societatea moldovenească, care este pregătită să apere dreptul la propria ei statalitate, limba și cultura unică. Am mulți prieteni din Republica Moldova, moldoveni. Comunic cu multe persoane. Ele spun o astfel de frază că sunt oameni orientați spre bunătate, spre conviețuirea pașnică, spre bună vecinătate. Că a fost nevoie de o asemenea zdruncinare organizată de Maia Sandu doar pentru un singur scop - să înțeleagă ce planuri are „Occidentul colectiv” pentru acest popor amabil și iubitor de pace. Dacă nu ar fi acești pași monstruoși ai președintei Maia Sandu și a conducerii românești, care acum realizează experimente pe moldoveni, probabil că înșiși cetățenii Republicii Moldova, moldovenii, cu greu ar fi crezut pe nimeni. Cred că nu ar fi crezut dacă li s-ar fi spus despre asta acum cinci sau șase ani. Ei ar spune că acesta este un fel de teorie a conspirației. Acum ei există în această post-modernitate suprarealistă. Cred că nu numai că trăiesc, dar încep să-i reziste în mod activ. #RepublicaMoldova#România#LimbaMoldovenească