TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #62 · 4 апр.

Когда разрабатываете свой 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

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #qboy

当前筛选 #qboy清除筛选

✈️ 限免内购应用 | QBOY:iOS街机游戏模拟器 支持 3DS 和 PSP、GBA 老游戏 🏷 检索标签:#QBOY#模拟器#街机模拟器#街机#游戏#3DS#PSP#GBA#限免 ⭐️ 详情介绍:QBOY 一款 iPhone 上的多系统复古游戏模拟器,它覆盖 3DS、DS、PSP、PS1、GBA、GBC、GB、FC、SFC、N64、街机 等平台,把掌机、主机和街机游戏放到手机里玩。 常用项包括 即时存档、5 倍快进、CRT 滤镜、云同步,对 RPG、老掌机游戏和重复刷关内容比较友好,也能管理个人游戏库和常见文件格式 ☁️限免有时效性请注意时间 ☁️在购买界面中没有显示金额,说明就是免费 🎮设备需装有 iOS15或更高版本 📱QBOY·App Store [内购💰 ¥0元] 😌频道 |🙂群聊 |😋中文包 |☺️搜索