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

Пребарај: #muratkarayilan

当前筛选 #muratkarayilan清除筛选
Turchia e dintorni

@notizieturchia · Post #3001 · 07.02.2025 г., 14:11

#MuratKarayilan, membro del Comitato Esecutivo del #PKK rilascia una serie di dichiarazioni molto importanti nell'ottica di tregua/pace tra lo Stato e l'organizzazione: - Pensiamo che #Ocalan rilasciaerà una dichirazione verso il 15 di febbraio, - La nostra organizzazione ha più di 10 mila militanti. Soltanto con l'intervento di Ocalan, non soltanto con un video, è difficile convincerli per deporre le armi. Nessun altro può fare questo. Per questo Ocalan deve essere libero, - Siamo pronti sia per la pace sia per la guerra. Siamo un'organizzazione solida e con esperienza. Non agiamo senza fare i nostri piani, - Prima di parlare della pace dobbiamo dichiarare bilateralmente un cessate il fuoco. Siamo, tuttora, in guerra, - In questi ultimi 10 anni abbiamo affrontare una forte avanzata militare. Ci siamo difesi bene anche se abbiamo perso il controllo di alcune postazioni. Oggi i curdi, in mano hanno delle carte vincenti, - Dopo i cambiamenti avvenuti in #Libano, #Siria e #Palestina oggi il nostro movimento ha più scelte/opzioni politiche. Ci sono nuove strategie in zona e nuovi attori, - A livello tecnologico e strategico la nostra organizzazione ha fatto dei passi notevoli in questi anni, - La proposta di riconciliazione e convivenza tra i turchi e i curdi, avanzata da Ocalan, gà nel 1993, oggi torna attuale, - I tentativi di dialogo tra lo Stato turco e Ocalan tuttora in atto hanno un precedente, alcuni membri dello Stato avevano già parlato con lui, - Pretendiamo una presa di posizione, un cambiamento nel linguaggio ma anche nelle azioni sia in Turchia che in #Siria, da parte del governo turco, - Per noi è necessario organizzare un congresso in presenza di Ocalan per spiegare al resto dell'organizzazione il cambiamento previsto. Non lo posso fare io, - Le proposte per la trasformazione democratica delle società sono utili per tutti i popoli della zona, - Ciò che accade in #Rojava è una guerra rivoluzionaria e popolare e in diverse località le forze armate turche hanno perso, - In Siria, la Turchia contava all'Esercito Nazionale Siriano ma #TahrirAlSham ha preso il potere a #Damasco. Ora #Ankara vuole recuperare il suo piano fallito, - Il controllo della Turchia in Siria è un ottimo risultato anche per l'#Israele, - #Jolani si trova di fronte a una prova molto difficile. Governare la nuova Siria con una visione unica è impossibile, - La nostra organizzazione è pronta per qualsiasi scenario.