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

Пребарај: #riyad

当前筛选 #riyad清除筛选
Antoine Cléraux

@corrAntoine · Post #382 · 19.02.2025 г., 19:07

🇷🇺🇺🇸Bilan des négociations russo-américaines Une rencontre historique entre représentants de la #Russie et des États-Unis s’est déroulée aujourd’hui à #Riyad, en Arabie Saoudite. A la tête des délégations, Sergueï Lavrov et son homologue Marco Rubio. Nous revenons sur les points clés de cette journée avec Antoine Cléraux. RT en français • Osez questionner !

Antoine Cléraux

@corrAntoine · Post #286 · 10.09.2024 г., 08:41

Bienvenu au club Le ministre russe des Affaires étrangères Sergueï #Lavrov est arrivé dimanche 8 septembre à #Riyad, la capitale saoudienne. Au cœur de cette visite officielle : une réunion ministérielle conjointe du dialogue stratégique entre la Russie et le Conseil de coopération des pays arabes du golfe #Persique. À l’issue de son entretien avec son homologue soudanais, le ministre russe des Affaires étrangères est intervenu devant les journalistes. Les points forts de cette allocution avec notre reporter Antoine Cléraux. RT en français

RT France actualités

@rt_fra · Post #40757 · 07.05.2026 г., 08:20

😃Ormuz : Riyad freine Trump ▪️Selon NBC News, Donald #Trump a suspendu « Project Freedom » après le refus de l’Arabie saoudite d’autoriser l’utilisation de ses bases militaires et de son espace aérien pour l’opération dans le détroit d’#Ormuz. ▪️L’initiative visait à escorter des navires à travers le détroit après les menaces iraniennes contre le trafic maritime et les tensions liées aux frappes américaines et israéliennes. ▪️#Riyad aurait été pris de court par l’annonce de Trump sur Truth Social. L’Arabie saoudite a ensuite refusé l’accès à la base aérienne Prince #Sultan ainsi qu’aux survols militaires liés à l’opération. ▪️Un échange entre Trump et Mohammed ben #Salmane n’a pas permis de débloquer la situation. D’après NBC, ce refus a directement conduit Washington à mettre l’opération en pause. ▪️Le #Qatar et #Oman auraient également été informés après l’annonce publique, malgré les affirmations de la Maison Blanche selon lesquelles les alliés régionaux avaient été prévenus en amont. ▪️#Washington maintient néanmoins une forte présence militaire dans le #Golfe, alors que les discussions autour d’un possible accord avec l’#Iran se poursuivent. RT en français • Osez questionner !