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

Пребарај: #darsipace

当前筛选 #darsipace清除筛选
DARSI PACE - MARCO GUZZI

@darsipace_marcoguzzi · Post #1730 · 18.12.2024 г., 11:42

Grande chiusura dell’anno per la rubrica “UN MOMENTO PER DARSI PACE” con un’ intervista extra al fondatore Marco Guzzi del movimento Darsi Pace. MERCOLEDÌ 18 dicembre dalle 18 alle 19 per parlare del suo ultimo libro “Gli Anni d’Oro 2020-2026” Con Sonia Marina Belforte. Seguiteci su Facebook o in streaming www.antennaunoradio.com o in FM 104,6 104,7 su Torino e Provincia #pace#nuovaumanita#darsipace#nonviolenza#nuovoMondo

DARSI PACE - MARCO GUZZI

@darsipace_marcoguzzi · Post #2220 · 19.07.2025 г., 15:58

📣Eccoci arrivati verso la conclusione del nostro ciclo di eventi "𝗟'𝗜𝘁𝗮𝗹𝗶𝗮 𝗶𝗻 𝗠𝗼𝘃𝗶𝗺𝗲𝗻𝘁𝗼. 𝗔𝘀𝘀𝗲𝗺𝗯𝗹𝗲𝗲 𝘁𝗲𝗿𝗮𝗽𝗲𝘂𝘁𝗶𝗰𝗼-𝗿𝗶𝘃𝗼𝗹𝘂𝘇𝗶𝗼𝗻𝗮𝗿𝗶𝗲", col quale abbiamo animato diversi luoghi d'Italia portando lo Spirito dei nostri Movimenti Darsi Pace e L'Indispensabile. 📍Domenica 20 luglio saremo a 𝗠𝗼𝗻𝘁𝗲𝗺𝗮𝗿𝗰𝗲𝗹𝗹𝗼 (𝗟𝗮 𝗦𝗽𝗲𝘇𝗶𝗮), alle ore 21:30, in Piazza XIII Dicembre, per un evento dal titolo “La Nuova Umanità. Poesia, Arte ed Iniziazione” con Davide Sabatino, Francesca Lagorio e Fabio Ronconi. Vi aspettiamo numerosi! #liguria#toscana#montemarcello#laspezia#darsipace

DARSI PACE - MARCO GUZZI

@darsipace_marcoguzzi · Post #1359 · 16.08.2024 г., 12:38

[Avevamo pubblicato un altro video di Marco, su Facebook, ma chissà perché è stato rimosso. In attesa che lo ripristinino, se mai accadrà, abbiamo fatto questo reels dello stesso video ma “censurato”] 🗣️Questo Sistema della Menzogna produce continuamente Fake news, che però spaccia per “libera informazione”. Vogliono convincerci che una nuova cultura politica sia impossibile, e che questo sia il migliore dei mondi possibili. Non dobbiamo permetterglielo! Dobbiamo denunciare i crimini del sistema e costruire un’alternativa credibile. Noi ci proviamo continuamente. Voi che suggerite? #marcoguzzi#darsipace#rivoluzione#nonviolenta#radicale#politica#spirituale#guerra#pace#bugie 👀Guarda vide integrale: https://youtu.be/OoJUHncMkOk?si=E4X6bVLkT-Z1tcpj

DARSI PACE - MARCO GUZZI

@darsipace_marcoguzzi · Post #1937 · 14.03.2025 г., 10:25

🙏Un dialogo profondo sul significato della poesia e della rivoluzione. Ecco cosa è accaduto ieri sera durante la presentazione del mio libro “Il poetico rivoluzionario” alla Villa del Palco, a Prato. Tanti sguardi attenti e tante domande che avrebbero meritato un approfondimento maggiore. Ho fatto del mio meglio. Questa mattina la meditazione pre-colazione con Guidalberto Bormolini ha dato una intonazione luminosa alla giornata, nonostante il bussare della pioggia torrenziale. Così dovremmo alzarci ogni mattina: intonandoci un po’ di più al nuovo giorno. Grazie a tutti per essere venuti a questo evento. Grazie Guidalberto per la stima e per l’amicizia. Ora ci prepariamo per l’evento di questa sera. Ci vediamo a Firenze! Davide Sabatino #guidalbertobormolini#bormolini#villadelpalco#prato#borgotuttoèvita#meditazione#libro#poesia#rivoluzione#davidesabatino#darsipace