Установить свойства виджета в 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
Бизнес совершил стремительный рывок вперед благодаря появлению ИИ, и сегодня все больше компаний стремятся использовать этот инструмент как конкурентное преимущество. На эту тему в РЭУ им. Г.В. Плеханова выступил СЕО VEON AdTech George Held с лекцией «Искусственный Интеллект в бизнесе: лучшие мировые практики»
Выпускник MIT (Массачусетского Технологического Института), George уже 20 лет занимается цифровой трансформацией телекоммуникационных технологий. В выступлении George Held рассказал о том, как искусственный интеллект преобразует сферы рекламы и бизнеса и поделился международным опытом разработки финтех, медиа и Big Data услуг.
К примеру, предиктивная модель роста сельскохозяйственных культур с помощью Computer Vision позволяет создать карты с/х территорий и зон погоды. Это помогает агрономам и почвоведам понимать, где и в какой момент времени высаживать те или иные культуры. Подобная модель была придумана в узбекской IT-академии Astrum и уже внедряется в работу.
– – –
Due to the emergence of AI, businesses made a significant leap forward, and today more companies are striving to use this tool as a competitive advantage. On this topic, George Held, the CEO of VEON AdTech, delivered a lecture titled 'Artificial Intelligence in Business: Best Global Practices' at the Plekhanov University of Economics.
A graduate of MIT (Massachusetts Institute of Technology), George has been involved in the digital transformation of telecommunications technologies. In his presentation, George Held talked about how AI transforms the advertising and business sectors and shared international experience in developing fintech, media, and Big Data services.
For example, a predictive model for the growth of agricultural crops helps create maps of agricultural territories and weather zones using Computer Vision. Agronomists and soil scientists employ them to understand where and when to plant various crops. A similar model, developed at the Uzbek IT Academy "Astrum", is already implemented in practice.
#VEONAdTech#ITeducation
Итоги года: Учебный центр DSR
Перед Новым годом мы подвели итоги работы Учебного центра DSR за 2023-2024 год. Вместе с командой обсудили достижения, поблагодарили наших менторов, подарили им памятными подарками и зарядились праздничным настроением. 🎁
💡Не без гордости хотим отметить, что:
• Наши курсы остаются бесплатными для всех.
• Уже два года обучение доступно не только в Воронеже, но и в Ташкенте и Порту (города, где работают наши офисы).
• Мы получили заявки от студентов из 28 стран!
Другие интересные цифры представлены в нашей инфографике.
🚀А наш учебный год в самом разгаре!
Совсем скоро стартует курс по фронтенду — JS Bootcamp. Deep Dive into React. Обучение будет проходить на английском, так что это отличная возможность не только улучшить навыки разработки, но и подтянуть язык.
🗓Узнайте больше и регистрируйтесь тут
#DSRTrainingCenter#ITEducation#JSBootcamp
Вы еще не устали отдыхать? 👨🎓👩🎓 Если хотите посвятить свободное время получению новых знаний, то вам поможет наша рубрика #DSR_knows.
➡️ ️ Сегодня - краткий обзор интерфейсных технологий:
💥Authentication
✅ Sessions and cookies - https://vk.cc/cqW5jA
✅ Web Authentication Methods Explained - https://vk.cc/cqW5mR
💥Tool
✅ Git Tutorial for Beginners: Command-Line Fundamentals - https://vk.cc/cqW5oP
💥HTML5, CSS
✅ Learn HTML5 and CSS3 From Scratch - https://vk.cc/cqW5vM
✅ Flexbox - https://vk.cc/cqW5xI
💥Javascript
✅ Modern JavaScript Cheatsheet - https://vk.cc/cqW5zC
✅ The Modern Javascript Tutorial - https://vk.cc/cqW5Dr
💥Networking
✅ How the Internet Works for Developers - https://vk.cc/cqW5Fo
✅ An overview of HTTP - https://vk.cc/cqW5HQ
✅ DNS Explained - https://vk.cc/cqW5K2
✅ REST API concepts and examples - https://vk.cc/cqW5O7
Эти знания пригодятся вам для поступления на наш бесплатный курс по фронтенду 'JS Bootcamp: Deep Dive into React'!
⚡️ Регистрация уже идет https://en.dsr-corporation.com/courses/jsbootcamp/
‼️Обучение будет проходить на английском языке.
#DSRTrainingCenter#ITEducation#JSBootcamp
С 24 по 27 октября в Ташкенте проходит ICT Week - форум о развитии IT-отрасли и технологиях. СЕО VEON AdTech George Held выступил на конференции с лекцией «Заменит ли искусственный интеллект человечество» и принял участие в панельной дискуссии «Создание экосистемы стартапов Узбекистана: привлечение венчурного капитала и расширение глобального охвата».
Основываясь на богатом опыте работы в цифровых технологиях, George Held считает искусственный интеллект мощным инструментом развития человечества. При использовании во благо, он имеет огромный потенциал для улучшения всех сфер жизни, включая работу, здравоохранение, образование и межличностные отношения.
«Индустрия информационных технологий продолжает развиваться и вносить значительный вклад в мировую экономику. По своему опыту могу сказать, что несмотря на стереотипы, IT-стартап требует не только математический расчет, но и живой творческий подход», — подчеркнул George Held.
– – –
ICT Week, a forum on the development of the IT industry and technologies, is taking place in Tashkent from October 24th to 27th. CEO of VEON AdTech, George Held, delivered a lecture titled "Will Artificial Intelligence Replace Humanity?" at the conference and participated in a panel discussion on "Unlocking the Uzbekistan Startup Ecosystem: Attracting Venture Capital and Expanding Global Reach."
Drawing on his extensive experience in digital technologies, George Held believes that Artificial Intelligence is a powerful tool for human development. When used for the greater good, it has huge potential to improve all aspects of life, including work, healthcare, education, and interpersonal relationships.
"The information technology industry continues to evolve and significantly contribute to the global economy. Based on my experience, despite stereotypes, an IT startup requires both mathematical calculations and a lively creative approach," emphasized George Held.
#VEONAdTech#IT#innovations#bigdata#AI#ITeducation#ICTWeek2023
🌟 Exciting News! 🌟
Albison Academy, in collaboration with Amity University, is offering fully funded summer scholarships for 500 students to learn Full Stack Development! 🎉📚 Join us for free and gain the skills you need to succeed in the IT industry. 💪💼
Why choose Albison Academy?
✅ Free Scholarship Opportunity
✅ Practical Skills for Career Growth
✅ Job Placement Support in Global Companies
✅ Inspiring Senior Mentors
✅ IT English Courses for Better Job Prospects Worldwide
Don't miss out on this incredible opportunity to kickstart your IT career!
🔗Apply now on our website🔓💻
#AlbisonAcademy#AmityUniversity#SummerScholarships#ITEducation#CareerGrowth#GlobalOpportunities