Когда разрабатываете свой GUI с помощью PyQt для какого-либо софта бывает необходимо позаимствовать цвета из текущего стиля интерфейса. Например, чтобы правильно раскрасить свои виджеты, подогнав их по цвету. Ведь бывает, что ваш GUI используется в разных софтах. Причём некоторые со светлой темой а другие с тёмной.
По умолчанию стили наследуются, но если вы задаёте какую-либо раскраску для части виджета через свой styleSheet, то требуется ссылаться на цвета текущего стиля.
Как это сделать? Как получить нужный цвет из палитры имеющегося стиля? Это достаточно просто, нужно использовать класс QPalette и его роли.
Например, мне нужно достать цвет текста из одного виджета и применить его в другом как цвет фона (не важно зачем именно так, просто захотелось😊).
Получаем палитру виджета и сразу достаём нужный цвет, указав его роль.
from PySide2.QtGui import QPalette
color = main_window.palette().color(QPalette.Text)
теперь можем использовать этот цвет в стилях
my_widget.setStyleSheet(f'background-color: {color.name()};')
Готово, мы динамически переопределили дефолтный стиль используя текущий стиль окна!
На самом деле есть запись покороче, в одну строку и без лишних переменных. Не очень-то по правилам CSS, но Qt это понимает.
my_widget.setStyleSheet('background-color: palette(Text);')
Этот способ не подходит если вам нужно как-то модифицировать цвет перед применением в своих стилях. В этом случае потребуется первый способ.
Зато он прекрасно сработает в файле .qss, то есть не придётся в коде прописывать раскраску отдельных элементов через ссылки на палитру, всё красиво сохранится в отдельном файле .qss!
QListView#my_widget::item:selected {
background: palette(Midlight);
}
Про имеющиеся роли можно почитать здесь🌍
#qt#tricks
Pink Pasta
🍝 Ingredients:
- 300 g pasta
🍄Sauce:
- 250 g cooked beetroot 🥗
- 100 g cashew nuts 🥜
- 50 ml water 💧
- 1 tbsp soy yogurt skyr 🥛
- 1 tsp oil 🫒
- 1 tsp agave syrup 🍯
- 1 tsp salt 🧂
- 1 tsp pepper 🌶️
- 1 tsp vegetable broth 🍲
Preparation:
1. 🥄 Soak the cashews in warm water for 10 minutes, then drain. Meanwhile, cook the pasta 🍲.
2. 🥢 Dice the beetroot and blend it with the other sauce ingredients until smooth.
3. 🍳 Crumble the tofu and sauté in oil, then add the beetroot and chickpeas. Fry until golden.
4. 🍝 Mix the pasta with the sauce, add your favorite toppings, and enjoy!
#PinkPasta#VeganRecipe#HealthyEating
@dishes
Carrot Cake Bites 🥕🍰
Ingredients:
- 135 g rolled oats 🌾
- 120 g walnuts 🌰
- 170 g dried dates 🌴
- 1 carrot 🥕
- Seeds from a vanilla bean 🌸
- 1 tbsp maple syrup 🍁
- 1 tsp cinnamon ✨
- Grated coconut 🥥
Preparation:
1. Soak the dates in warm water, then drain after 10 minutes 💧
2. Mix all ingredients in a high-speed blender until coarse 🌀
3. Shape the mixture into 30 g balls and roll in grated coconut 🍥
#HealthySnack#CarrotCakeBites#VeganRecipe
@dishes
High Protein Vegetable Patties
🥕 Ingredients:
- 1 small carrot 🥕
- 1 medium potato 🥔
- 1/2 bell pepper 🌶
- 1 onion 🧅
- 50 g soy granules 🌱
- 50 g corn 🌽
- 50 ml water 💧
- 100 g flour 🌾
- 1 tbsp starch ✨
- Oil for frying 🍳
Preparation:
1️⃣ Grate the carrot & potato, dice the pepper & onion, and place in a bowl 🥣
2️⃣ Soak the soybean granules in water, then add to the bowl along with the remaining ingredients and mix well 👩🍳
3️⃣ Shape the dough into patties and sauté in a pan with a little oil until golden brown 🥘
Enjoy! 😋
#HighProtein#VegetablePatties#VeganRecipe#HealthyEating#PlantBased
@dishes
High Protein Vegetable Patties
🥕 Ingredients:
- 1 small carrot 🥕
- 1 medium potato 🥔
- 1/2 bell pepper 🌶️
- 1 onion 🧅
- 50 g soy granules 🌱
- 50 g corn 🌽
- 50 ml water 💧
- 100 g flour 🌾
- 1 tbsp starch ✨
- Oil for frying 🍳
Preparation:
1️⃣ Grate the carrot & potato, dice the pepper & onion, and place in a bowl 🥣
2️⃣ Soak the soybean granules in water, then add to the bowl along with the remaining ingredients and mix well 👩🍳
3️⃣ Shape the dough into patties and sauté in a pan with a little oil until golden brown 🥘
Enjoy! 😋
#HighProtein#VegetablePatties#VeganRecipe#HealthyEating#PlantBased
@dishes
🌿Udon Noodle Bowl 🍜
Ingredients
• 🫒 Oil for frying
• 100 g smoked tofu 🧆
• 1/2 tsp chili 🌶
• 1/2 tsp thyme 🌱
• 1/2 tsp coriander 🌿
• 2 tbsp soy sauce 🍶
• 100 g mushrooms 🍄
• 2 cloves garlic 🧄
• 300 g udon noodles (pre-cooked) 🍜
Sauce:
• 1 tbsp paprika paste 🌶
• 2 tbsp agave syrup 🍯
• 5 tbsp soy sauce 🍶
• 200 ml water 💧
• 1 tbsp starch 🌽
• 1 tbsp white sesame 🥢
Side dishes for the bowl:
• 1 bok choy 🥬
• Red cabbage 🥬
• Cucumber 🥒
• Avocado 🥑
• Lime 🍈
• Spring onions 🧅
• Sesame seeds 🌱
• Paprika 🌶
Preparation:
1. 🔥 Fry the smoked tofu in oil, deglaze with soy sauce, season & set aside.
2. 🥄 Mix all the ingredients for the sauce together.
3. 🍄 Sear the mushrooms and garlic, deglaze with the sauce, and stir in the udon noodles.
4. 🍲 Fill the bowl with the udon noodles, tofu, and all the remaining ingredients.
#VeganRecipe🌱#UdonNoodles🍜#HealthyEats💚#AsianCuisine🍲#PlantBased
@dishes
🌿Udon Noodle Bowl 🍜
Ingredients
• 🫒 Oil for frying
• 100 g smoked tofu 🧆
• 1/2 tsp chili 🌶️
• 1/2 tsp thyme 🌱
• 1/2 tsp coriander 🌿
• 2 tbsp soy sauce 🍶
• 100 g mushrooms 🍄
• 2 cloves garlic 🧄
• 300 g udon noodles (pre-cooked) 🍜
Sauce:
• 1 tbsp paprika paste 🌶️
• 2 tbsp agave syrup 🍯
• 5 tbsp soy sauce 🍶
• 200 ml water 💧
• 1 tbsp starch 🌽
• 1 tbsp white sesame 🥢
Side dishes for the bowl:
• 1 bok choy 🥬
• Red cabbage 🥬
• Cucumber 🥒
• Avocado 🥑
• Lime 🍈
• Spring onions 🧅
• Sesame seeds 🌱
• Paprika 🌶️
Preparation:
1. 🔥 Fry the smoked tofu in oil, deglaze with soy sauce, season & set aside.
2. 🥄 Mix all the ingredients for the sauce together.
3. 🍄 Sear the mushrooms and garlic, deglaze with the sauce, and stir in the udon noodles.
4. 🍲 Fill the bowl with the udon noodles, tofu, and all the remaining ingredients.
#VeganRecipe🌱#UdonNoodles🍜#HealthyEats💚#AsianCuisine🍲#PlantBased
@dishes
🌾Oriental Mujaddara 🌾
🌾 Ingredients:
🍚 200g rice
🥫 1 can (300g) cooked brown lentils
🧴 Oil for frying
🧅 3 large white onions
🧅 2 red onions
🧂 Pinch of salt
🥄 150 ml vegetable stock powder
🌿 1 tsp cumin
🧂 Salt and pepper
🍃Yoghurt dip:
🥄 500g soy yogurt
🍋 Juice of half a lemon
🧂 1/2 tsp salt
🧄 2 cloves of garlic
🌿 1 bunch of chives
🌈Toppings:
🌿 Chives, 🍈 pomegranate seeds
#OrientalMujaddara#MiddleEasternFlavors#VeganRecipe#PlantBased#ComfortFood
@dishes
High Protein Quinoa Balls Recipe🥗💪
Ingredients for Quinoa Balls:
🥣 75g quinoa
🌿 3 tsp canola oil
🧅 1 red onion
🧄 2 cloves garlic
🥕 1 small carrot
🌾 10g rolled oats (tender)
🌱 35g soy granules
🫚 1 tsp vegetable broth
🌽 2 tbsp cornstarch
🌿 1 handful of parsley
Ingredients for Filling:
🌿 1 handful of chives
🌱 1 tbsp vegan cream cheese
🍋 Quarter lemon
Spices:
🧂 Salt
🌶️ Chili
🧂 Pepper
Preparation🥘:
1️⃣ Cook the quinoa & soy granules according to the packaging. Then drain each one.
2️⃣ Chop onions & garlic 🧅🧄 and sauté in 1 tsp canola oil.
3️⃣ Grate or finely chop the carrots 🥕 and add to the pan for 3 minutes. Finely chop parsley 🌿.
4️⃣ Mix quinoa, soy granules, onions, garlic, carrots, oats, vegetable broth, parsley & cornstarch in a bowl 🥣. Leave to swell for 3 minutes.
5️⃣ Prepare the filling: mix vegan cream cheese, lemon juice 🍋, and chives 🌿. Season.
6️⃣ Season the quinoa mixture, form 5 balls, press in with your thumb, fill with the dip, and close the balls.
7️⃣ Fry the balls in 2 tbsp canola oil until golden.
✨Enjoy your high-protein snack!💪🌱
#HealthyEating#VeganRecipe#ProteinBoost#QuinoaBalls#PlantBased#MealPrep
@dishes