Установить свойства виджета в 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
Благодаря искусственному интеллекту Lenovo получила рекордную выручку в 20,5 млрд долларов
✅ Lenovo Group Ltd опубликовала исторические результаты за квартал, завершившийся в сентябре: выручка достигла рекордного уровня в 20,5 млрд долларов США, что на 15 процентов больше в годовом исчислении, благодаря высоким показателям в области искусственного интеллекта.
🔺 Скорректированная чистая прибыль также выросла на 25 процентов в годовом исчислении и составила 512 миллионов долларов.
➡️ Ян Юаньцин, председатель совета директоров и генеральный директор Lenovo, отметил:
«Используя тенденцию к демократизации ИИ и благодаря нашей четкой стратегии, операционному совершенству и постоянным инновациям, Lenovo добилась еще одного квартала рекордных показателей, добившись существенного прогресса как в сфере персонального, так и корпоративного ИИ».
«Мы продолжим использовать нашу уникальную глобальную и локальную модель, чтобы ориентироваться в условиях неопределенности и использовать колоссальные возможности гибридного ИИ, и при этом не только обеспечивать нашим акционерам устойчивую долгосрочную прибыль, но и делать ИИ по-настоящему персонализированным для каждого человека и каждого предприятия», — сказал Ян.
📌 Lenovo продемонстрировала двузначный рост выручки в годовом исчислении по всем основным бизнес-группам и регионам продаж. Структура выручки, связанной с ИИ, увеличилась на 13 процентных пунктов в годовом исчислении, составив 30% от общей выручки компании в этом квартале.
Источник: chinadaily
@chinastocksnet
Если полезно, поставьте лайк 👍😇
#Lenovo
#Lenovo🇪🇸🌎🛒🛒CHOLLAZO🇪🇸💲
💯Compite con el Legion 5 Gen 6 (15" AMD). Está equipado con todo lo que necesitas para dominar cualquier partida e incluye hasta procesadores móviles AMD Ryzen™ 7 5800H y tarjeta gráfica NVIDIA® GeForce RTX™ serie 30. Disfruta de imágenes nítidas en una pantalla WQHD de hasta 38,1 cm (15"), con una precisión de color asombrosa y Dolby Vision™. Por su parte, el sonido Nahimic 3D y el teclado Legion Truestrike te ayudan a atacar con precisión milimétrica.💯
❌ Precio antes: 1499 Euros
✅ Precio oferta: 979.30 Euros
🔵 Cupón: BDCBLACK
🌍https://bit.ly/3nXxTDH
🎁chollosmania🎁
Сегодня как и обещал, про прототип телефона с прозрачным экраном от китайской компании.
Lenovo в 2015-м году решила вернуться к идее прозрачного телефона. Правда, она показала только прототип смартфона под своим дочерним брендом Zuk. Экран устройства был прозрачным, но мог затемняться настолько, чтобы изображение по качеству и яркости было приближено к привычным дисплеям в других смартфонах, и возможно, это было бы прорывом в технологиях.
Но Lenovo решили не выпускать этот смартфон в серию.
А завтра я хочу закончить серию этих постов, но рассказом не про телефон. Что это будет - дождитесь завтра 💪
#Lenovo
📱📱 qayriladigan ekranli noutbuk kontseptsiyasini taqdim etdi
🆕 IFA 2025 ko‘rgazmasida kompaniya ThinkBook VertiFlex nomli noutbuk kontseptsiyasini namoyish qildi. Uning ekrani 90 darajaga burilib ochiladi.
💻 Lenovo vakillarining aytishicha, bu format kod yozish, hujjatlar bilan ishlash yoki smartfon ekranini chiqarish uchun qulay bo‘lishi mumkin.
⚙️ Texnik tafsilotlar:
- Displey: 14 dyuym
- Og‘irligi: 1,39 kg
- Qalinligi: 17,9 mm
Boshqa texnik xususiyatlari hozircha oshkor qilinmagan.
⚠️Bu hozircha faqat kontsept loyiha, yaqin orada savdoga chiqarilishi rejalashtirilmagan.
➡️#noutbuk#lenovo | Birinchi raqamli IT-Blog
Сегодня я расскажу вам ещё про один телефон с прозрачным экраном, представленный в 2010-м году.
Если про Xperia Pureness знают многие, то про эту китайскую подделку копию от Lenovo - мало кто слышал.
Отличий от SE в этом гаджете действительно не было, видимо, китайцы просто скопировали чужую идею.
Однако, телефон появился в продаже только в 2011-м когда уже можно было купить iPhone 4 или Samsung Galaxy S2, и этот дизайнерский китайский гаджет просто остался не у дел.
А ещё у китайцев был такой телефон - Explay Crystal, выпущенный в 2012-м году (фото 3, 4)
Завтра я снова расскажу вам, какое воплощение получила идея таких телефонов у японских производителей
#Lenovo
#Explay
Breakingviews TV: Lenovo's Shanghai glitch
Lenovo's reasons for canceling its $1.6 billion mainland listing are confusing, Robyn Mak says.
#News#Reuters#Breakingviews#Lenovo
Subscribe: http://smarturl.it/reuterssubscribe
Reuters brings you the latest business, finance and breaking news video from around the globe. Our reputation for accuracy and impartiality is unparalleled.
Get the latest news on: http://reuters.com/
Follow Reuters on Facebook: https://www.facebook.com/Reuters
Follow Reuters on Twitter: https://twitter.com/Reuters
Follow Reuters on Instagram: https://www.instagram.com/reuters/?hl=en
➖@reutersworldchannel➖