Установить свойства виджета в 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
#adjectives
@fluencyinenglish
@ieltsstrategies
❌سعی کنید به جای کلمهی 👈very 👉از قیدهای دیگر استفاده کنید.❌
❇️These mountains are incredibly beautiful.
❇️The food in this restaurant is usually quite good.
❇️To climb mountains, you must be exceptionally brave
and fit.
@fluencyinenglish
@ieltsstrategies
❇️Earthquakes are extremely difficult to predict.
❇️It was really cold last night.
❇️He works unbelievably hard.
@fluencyinenglish
@ieltsstrategies
❇️I feel terribly tired.
❇️The film was absolutely awful.
❇️she plays the violin remarkably well.
@fluencyinenglish
@ieltsstrategies
В Россию завезли санкционную Кока-колу:)
They've brought sanctioned Coca-Cola into Russia:)
• Санкционный (masc.adj.)
[san-ktsy-on-nyj]
Sanction-related, sanctioned, subject to sanctions
🔻This adjective describes something that is directly connected to, affected by, or created as a result of sanctions (ограничительные меры).
Common collocations:
• Санкционные списки (plural noun)
sanctions lists (lists of individuals/entities under restrictions)
• Cанкционные товары (plural noun)
Sanctioned goods (products subject to trade restrictions)
• Cанкционные меры (plural noun)
Sanction measures
• Cанкционное давление (neut.noun)
Sanctions pressure
• Попасть под санкционные ограничения (perf.)
To fall under sanctions restrictions
#useful_vocabulary
#adjectives
🟠RCR | Support | Boost
👋Доброе утро, товарищи!
• Полезный (masc.adj.)
[pa-lez-nyj]
1) Useful, advisable
2) Healthy
🔻Also:
• Полезно (adverb)
[pa-lez-na]
• Это полезно для здоровья!
[e-ta pa-lez-na dlya zda-ro-v'ya]
It's useful for health!
💢There is a funny saying:
• Всё полезно, что в рот полезло.
[fsyo pa-lez-na shto v rot pa-lez-la]
Everything that goes into the mouth is useful. (Полезло = влезать = go in/get in)
❓A у Вас полезный завтрак?
🎧🗣👇
#useful_vocabulary
#adjectives
😎 Stay with @learnRCRussian
Всем надо работать, кроме очень красивых. Есть такое правило: очень красивые могут не работать, но только очень красивые.
Everyone needs to work, except for the very beautiful. There's a rule: very beautiful don't have to work, but only if they're very beautiful.
🔻Did you know that there is a colloquial form of красивый(beautiful)?
🔻This is a playful, informal term of endearment used to describe something exceptionally beautiful, sweet, and visually appealing:
👍Красивошный (masc.adj.)
[kra-si-vash-nyj]
=
👍Красивошная (femin.adj.)
[kra-si-vash-na-ya]
=
👍Красивошное (neut.adj.)
[kra-si-vash-na-ye]
=
👍Красивошные (plural adj.)
[kra-si-vash-ny-ye]
Beautiful, handsome
😺 Show this to your very fluffy beautiful one!
#spoken_Russian
#adjectives
🟠RCR | Support | Boost
Кошачий 🆚️ Кошкин?
🔢 Кошачий
[kа-sha-chiy]
Feline, cat's, cat-like
🔻This relational adjective describes something that is characteristic of cats in general, related to the cat species, or used for cats. It describes qualities or items associated with catness.
🔻It doesn't imply ownership by a specific cat.
Examples:
• Кошачий корм (masc.)
[ka-sha-chiy korm]
Cat food
• Кошачьи повадки (plural)
[ka-sha-chyi pa-vat-ki]
Cat-like habits
🔢 Кошкин
[kosh-kin]
The cat's
🔻This possessive adjective describes something that belongs to a specific, particular cat. It implies direct ownership by an individual cat.
Examples:
• Кошкин хвост
[kosh-kin khvost]
The cat's tail
• Кошкина миска
[koshkina miska]
The cat's bowl
🤔Sooo, I have a tricky question for you, my dear Russian language learners:
❓️кошкина шерсть или кошачья шерсть (... fur)? Share your ideas!
🗝Кошачья шерсть
#tricky_words
#adjectives
😎RCR | Support | Boost
👋Всех с понедельником, товарищи!
Деловитый 🆚️ Деловой 🆚️ Дельный
🔢 Деловитый (masc.adj.)
[di-la-vi-tyj]
Businesslike, efficient, practical
🔻This adjective describes someone who is businesslike, efficient, and practical in their actions.
• Он был очень деловитый и быстро решил проблему.
He was very businesslike and quickly solved the problem.
🔢 Деловой (masc.adj.)
[di-la-voy]
Business, professional, official
🔻This adjective refers to something related to business or professional matters.
• У него деловой костюм ипричёска.
He's wearing a business suit and hairstyle.
🔢 Дельный (masc.adj.)
[del'-nyj]
Sensible, practical, useful
🔻This adjective describes something practical, and useful in terms of actions, decisions.
• Он дал дельный совет.
He gave useful advice.
❓Is▶️малыш in the video ... ?
А. деловитый
Б. деловой
В. дельный
🎧🗣👇 Make up your own examples!
#tricky_words
#adjectives
😎 Stay with @learnRCRussian
• Бесполезный (masc.adj.)
[bes-pa-lez-nyj]
Useless, pointless
🔻Prefix: бес- (bes-) means without or lack of.
🔻Root: полез- сomes from the noun польза [pol'-za] use, benefit, advantage
🔻Suffix: -н is an adjectival suffix, forming adjectives from nouns or verbs.
🔻Ending: -ый is the masculine singular ending. The ending changes depending on gender and number (e.g., бесполезная - feminine singular, бесполезные - plural).
💢 This meaning is well illustrated with the Russian proverb:
• Носить воду в решете(imperf., 2nd conjugation)
[na-sit' vo-du v ri-shi-te]
Literally: To carry water in a sieve
To roast snow in a furnace, to be engaged in a hopeless task
• Ловить котят - бесполезная задача. Это как носить воду в решете: они всё равно разбегаются!
Trying to catch kittens is a useless task. It's like trying to carry water in a sieve. They just run away anyway!
🎧🗣👇 Hope it was not a бесполезный post ->❤️
#adjectives
#phraseology
😎RCRussian | Support | Boost
Electric sleds have replaced electric scooters.
🔻In Novosibirsk, Biysk and other cities, a winter version of electric scooters (which have become a real danger for pedestrians👿!!!) has been launched — you can now zip around the snowy city on electric sleds.
• Электрический (masc.adj.)
[е-lik-tri-chis-ky]
Electric
• Самокат (самокаты) (masc.noun)
[sam-a-kat (sam-a-ka-ty)]
A kick scooter
• Санки (plural)
[san-ki]
A sled (a vehicle on runners for sliding over snow)
• Это нам за то, что не молимся.
This is what we get for not praying.
#news
#useful_vocabulary
#adjectives
😎RCR | Support | Boost
Так выглядит одна молекула кота.
This is what one cat molecule looks like.
• Маленький (masc.adj.)
[ma-lin'-kiy]
Small, little
• Крошечный (masc.adj.)
[kro-shech-nyj]
Tiny
💢Also colloquial:
• Мелкий (masc.adj.)
[mel-kiy]
SLT: Shallow
Petty, insignificant, tiny
• Мелочь пузатая (femin. noun + adj., common gender)
[me-lach pu-za-ta-ya]
SLT: A little thing with a big belly: а playful nickname for a child or cub
Now you know how to call your kittens or younger kids in Russian😉.
🎧🗣👇
#adjectives
#useful_vocabulary
#spoken_Russian
😎RCR | Support | Boost
👋Приветствую!
Не забывайте про витамины весной!
Травоядный 🆚️ Плотоядный
🔢 Травоядный
[tra-va-yad-nyj]
Herbivorous
🔢 Плотоядный
[pla-ta-yad-nyj]
Carnivorous
Etymology:
The suffix -ядный derives from the verb есть [yest'] (to eat). Therefore, these words literally mean grass-eating and flesh-eating:
Трав(а) (grass)+ linking 'о' + ядный (eating)
Плот(ь) (flesh) + linking 'о' + ядный (eating)
💢In colloquial Russian травоядный has one more, figurative or ironical meaning harmless, incapable of aggression:
• Да, не бойся Василия. Это он снаружи такой грозный, а вдуше он травоядный.
Yes, don't be afraid of Vasily. He may look intimidating on the outside, but inside he's a gentle soul.
📎 Please don't call your tough-looking husband/bf травоядный to avoid misunderstanding or arguments😅!
🎧🗣👇
#useful_vocabulary
#adjectives
#spoken_Russian
😎 Stay with @learnRCRussian
Средневековая живопись такая утончённая.
Тем временем коты...
Medieval painting is so refined.
Meanwhile, cats...
• Утончённый (masc.adj.)
[oo-tan-chyon-nyj]
Sophisticated, refined
#just_cats
#just_a_joke
#adjectives
😎RCR | Support | Boost