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

Пребарај: #sudamerica

当前筛选 #sudamerica清除筛选
📰 Info_Dota2

@Info_Dota2 · Post #36028 · 02.10.2024 г., 17:31

𝐂𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐄𝐁 ¿𝐈𝐒 𝐁𝐀𝐂𝐊? 😱😱😱 Recordemos que el puesto de hard carry, que quedó libre recientemente, fue ocupado por Nuengnara "23savage" Teeramahanon. Además, el equipo realizó un cambio en la posición de midlaner, con Leon "Nine" Kirilin de Bulgaria reemplazando a Bzm. Los demás jugadores han mantenido sus posiciones en el roster, incluyendo al actual offlaner de OG, el jugador boliviano Adrián "Wisper" Dobles. 🇧🇴 Cabe mencionar que el equipo fue eliminado de las clasificatorias para la DreamLeague Season 24 y la BetBoom Dacha Belgrado 2024. 😢 ¿Volveremos a ver a Ceb en la posición de offlaner? 🤔🤔 #Dota#Gaming#ESB#sudamerica#dota#Esports @Info_Dota2

Marx21.it

@marx21news · Post #9738 · 13.02.2026 г., 06:48

Un nuovo capitolo per il Sud America? Mentre Washington innalza barriere protezionistiche, i Paesi del Mercosur – guidati dal Brasile – stanno rivalutando con pragmatismo i legami con la Cina. Secondo indiscrezioni Reuters, Brasilia potrebbe promuovere un accordo commerciale parziale tra il blocco sudamericano e Pechino. Una svolta significativa, dopo decenni in cui il Brasile ha frenato i negoziati formali per proteggere l’industria nazionale. Cosa sta cambiando? ✅ La pressione economica e i dazi USA spingono i Paesi latinoamericani a cercare alternative. ✅ La Cina offre non solo mercati, ma investimenti concreti (es. case automobilistiche come BYD). ✅ L’accordo “parziale” aggira gli ostacoli politici (come la questione Paraguay-Taiwan) e si concentra su cooperazione regolatoria, norme sanitarie e semplificazione doganale. Non è solo commercio: è un passo verso una simbiosi delle catene di fornitura e una maggiore autonomia strategica del Sud Globale. Un segnale chiaro: quando l’egemonia offre solo bastoni, i partner cercano nuove strade. Che ne pensate? È una mossa necessaria per la crescita della regione, o nasconde rischi di dipendenza economica? #Geopolitica#SudAmerica#Mercosur#Cina#CommercioInternazionale#SviluppoEconomico https://www.marx21.it/internazionale/i-paesi-sudamericani-rivalutano-in-modo-pragmatico-i-legami-con-la-cina-nel-contesto-dellegemonismo-e-del-protezionismo-usa/