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

Резултати

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

Пребарај: #russiancourses

当前筛选 #russiancourses清除筛选
Russian Consulate in Cape Town

@rusconct · Post #2836 · 16.07.2025 г., 12:28

Free Russian Language Courses in Cape Town! We are pleased to invite everyone to take part in free Russian language courses supported by the Ministry of Education of the Russian Federation and St. Petersburg State University. 👩‍🏫 The lessons will be conducted by Dasha and Taisiya — experienced teachers of Russian as a foreign language with nearly 20 years of teaching experience. 📚 The courses are open to everyone. No prior knowledge of Russian is required. Why learn Russian? 🗣 It is a language spoken across 15 countries and serves as a bridge among more than 160 ethnic groups. 🌍 Studying Russian offers access to a rich cultural, literary, and scientific heritage — from Tolstoy and Dostoevsky to Gagarin and Tchaikovsky. 📖 Course highlights: – Basics of grammar and practical conversation – Introduction to Russian culture and traditions 🔗 Register here: https://forms.gle/p4fo6ttm8esXqtLa6 Let’s explore the Russian language together! #RussiaSouthAfrica#RussianCourses#LearnRussian

Russian House Brussels-Europe

@rushousebrussels · Post #2471 · 23.06.2025 г., 07:33

📚Enrollment is open for the 2025–26 academic year! ⏰24 June | 18:00 Join our Presentation of Russian Language Courses for Adults — meet the teachers and find the perfect program for you: ✨Fundamental Course — from A1 to C1, steady pace (October–June) ⚡️Intensive Course — fast-track A1 to A2, with speaking from day one 🌍Online — learn from anywhere in the world 🏫Offline — full language immersion 👥Group classes — motivation, support & shared experience 👤Individual lessons — flexible schedule, personalized approach 🎉 Plus, learn about our linguistic and cultural events for students! 📅Free participation — sign up via the linkhere #russianlanguage#learnrussian#russiancourses#languagelearning#onlinelearning

Russian House Brussels-Europe

@rushousebrussels · Post #2626 · 24.10.2025 г., 05:41

🏔🇷🇺✨ When your Russian truly reaches new heights! Our student took his Russian — all the way to the Himalayas! 🏔 Russian at 5300 m! Language is more than words. It’s a journey, an inspiration, and the strength that lifts you higher. Our student is traveling in the Himalayas and… he used Russian at the top of a mountain! 😄 “I told them I study Russian at the Russian Language School in Brussels. And that I have very good teachers!” Even at the highest heights, you can talk about poetry, music and your favorite language. 😉 Did you know? Russian is one of the six official international languages and is spoken by an estimated up to 285 million people worldwide. 📍Where have you used your Russian abroad? Share your story in the comments — the most inspiring ones will be featured! Join us to learn Russian! We offer in-person classes, online courses, and individual lessons. #RussianHouseBrussels#LearnRussian#RussianLanguage#CulturalDiplomacy#RussianAbroad#DiscoverRussia#RussianCourses