Установить свойства виджета в 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
⚠️Received notice of an eFill refund from “IRAS”? Do not click on suspicious links.
We have received reports of scam emails with the subject heading “Reminder : [IRAS #REF-2026-8912-4567] from “IRAS TEAM 2026”. The phishing email, purportedly from “IRAS”, states that the recipient is eligible for an eFill refund and includes a link to the “Complete Refund Form” that likely leads to a phishing website.
IRAS will not send you emails on your tax refund amount. Members of the public are advised to ignore the phishing email and:
- Do not click on the link or download any attachments/documents
- Access any notices or letters from IRAS securely via myTax Portal
Read more to protect yourself from this scam: https://www.iras.gov.sg/news-events/announcements/scam-advisory/tax-refund-scam
🪙Реферальная система: зарабатывайте с GPTunneL
Вы уже пользуетесь GPTunneL и советуете сервис другим?
Теперь это можно превратить в приятный бонус для себя.
💡Как это работает:
1. Вы делитесь своей реферальной ссылкой или промокодом.
2. Новый пользователь регистрируется и оплачивает сервис.
3. Вы получаете процент скаждой его оплаты.
4. На старте — 5%, дальше процент растёт за счёт системы уровней.
По промокоду новый пользователь получает 10% бонусами от первого пополнения, а вы получаете процент с его оплат.
❓Что это даёт:
➖вознаграждение с оплат привлечённых пользователей;
➖возможность конвертировать доход в бонусы с +20% кешбэка (самый выгодный вариант);
➖вывод средств на карту физлица или на счёт ИП/юрлица;
➖повышенный потенциал при привлечении бизнес-клиентов.
🔗 Переходите к реферальной системе в профиле и попробуйте сами.
Подробности про уровни, промокоды, GiftCard и вывод средств — в блоге.
#ref@gptunnel
Claude for Excel
Claude уже завоевал доверия у специалистов разных направлений, хотя среди них конечно заметную долю занимают разработчики. Но Anthropic не стоит на месте и как-то нужно и дальше популяризировать Claude. И почему бы не пойти помогать людям с Экселем? Anthropic не первые в этом направлении, но могут сделать что-то действительно интересней и удобнее чем другие игроки. Google, например, такое себе решение с гугл шитами сделал. ChatGPT лучше справляется через коннектор.
Claude for Excel умеет:
– Отвечать на вопросы по любой ячейке за секунды. Можно спросить про конкретную формулу, целый лист или как считаются данные между вкладками. В ответе будут ссылки на ячейки, чтобы сразу проверить логику.
– Проверять разные сценарии, не ломая формулы. Можно менять исходные данные или допущения, а Claude обновит всё по цепочке и покажет, что изменилось и почему.
– Находит и исправляет ошибки вроде #REF!, #VALUE! или циклические ссылки. Объясняет, что пошло не так и как это починить, не затрагивая остальное.
– Умеет собирать финансовые модели с нуля по запросу или заполнять готовые шаблоны новыми данными, сохраняя все формулы и связи.
А еще прикольно, что тут будут работать и Claude Skills для финансовых задач.
Пока waitlist, можно записываться, а можно просто дождаться публичного доступа. Почитать больше деталей можно в блоге.
💡Добро пожаловать в Telegram-канал сервиса GPTunneL!
➡️ Здесь вы найдете всю необходимую информацию о нашем сервисе и его возможностях. Чтобы вам было проще ориентироваться, мы подготовили удобную навигацию по каналу.
✔️Полезные хэштеги:
#update - обновления и новости сервиса
#aitools - инструменты и советы по их использованию
#aiapps - приложения, созданные на базе LLM
#assistant - полезные ассистенты
#blog - полезные статьи и инструкции в блоге
#b2b - решения для бизнеса и корпоративных клиентов
#ref - реферальная программа и возможности заработка
#midjourney#stablediffusion - советы по генерации изображений
❕Правила комьюнити:
В нашем комьюнити мы ценим мнение каждого и надеемся на уважительное общение между всеми участниками сообщества.
Запрещено:
• Оскорбления, провокации, другие формы агрессивного и деструктивного поведения.
• Публикация методов обхода блокировок, предусмотренных законами РФ.
• Размещение рекламы и ссылок на сторонние ресурсы без разрешения администрации.
Приветствуется:
• Взаимопомощь участников в решении технических и практических вопросов, связанных с использованием сервиса GPTunneL.
• Обсуждения, связанные с искусственным интеллектом и его применением в различных областях.
• Вопросы, отзывы и предложения по работе и улучшению сервиса GPTunneL.
За нарушение правил предусмотрены предупреждения и бан❌
🤑Ценообразование:
Мы используем прозрачную систему оплаты “pay as to go”.
Вы платите только за фактическое использование моделей, без фиксированных тарифов.
Минимальная сумма пополнения персонального счёта составляет 50 рублей.
🔗Подробная информация о тарификации и расчете стоимости
Полезные ссылки:
🔂Вступай в наше комьюнити: @gptunnel_ru
🔂Приватный чат поддержки: @ScriptHeads
🔂Используй нашего Telegram-бота: @gptunnel_bot
🌐По вопросам сотрудничества можно обратиться к Алисе.
💡Добро пожаловать в Telegram-канал сервиса GPTunneL!
➡️ Здесь вы найдете всю необходимую информацию о нашем сервисе и его возможностях. Чтобы вам было проще ориентироваться, мы подготовили удобную навигацию по каналу.
✔️Полезные хэштеги:
#update@gptunnel - обновления и новости сервиса
#aitools@gptunnel - инструменты и советы по их использованию
#aiapps@gptunnel - приложения, созданные на базе LLM
#assistant@gptunnel - полезные ассистенты
#blog@gptunnel - полезные статьи и инструкции в блоге
#newsai@gptunnel - новости из мира искусственного интеллекта
#b2b@gptunnel - решения для бизнеса и корпоративных клиентов
#ref@gptunnel - реферальная программа и возможности заработка
#midjourney@gptunnel - советы по генерации изображений в Midjourney
#creativelab@gptunnel - советы по генерации фото и видео в Креативной лаборатории
#prompt@gptunnel - техники промпт-инжиниринга
#базазнаний@gptunnel - ёмкие ролики по работе с сервисом
#event@gptunnel - события и мероприятия с нашим участием
#newsweekly@gptunnel - еженедельная сводка событий из жизни GPTunneL и ИИ-мира
❕Правила комьюнити:
В нашем комьюнити мы ценим мнение каждого и надеемся на уважительное общение между всеми участниками сообщества.
Запрещено:
• Оскорбления, провокации, другие формы агрессивного и деструктивного поведения.
• Публикация методов обхода блокировок, предусмотренных законами РФ.
• Размещение рекламы и ссылок на сторонние ресурсы без разрешения администрации.
Приветствуется:
• Взаимопомощь участников в решении технических и практических вопросов, связанных с использованием сервиса GPTunneL.
• Обсуждения, связанные с искусственным интеллектом и его применением в различных областях.
• Вопросы, отзывы и предложения по работе и улучшению сервиса GPTunneL.
За нарушение правил предусмотрены предупреждения и бан❌
🤑Ценообразование:
Мы используем прозрачную систему оплаты “pay as to go”.
Вы платите только за фактическое использование моделей, без фиксированных тарифов.
Минимальная сумма пополнения персонального счёта составляет 50 рублей.
🔗Подробная информация о тарификации и расчете стоимости
Полезные ссылки:
🔂Приватный чат поддержки: @ScriptHeads
🔂Используй нашего Telegram-бота: @gptunnel_bot
🌐По вопросам сотрудничества можно обратиться к Варваре.
Есть вопросы или нужна помощь? Присоединяйся к нашему комьюнити, где ты сможешь получить поддержку от команды и других пользователей.