首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Qt C++中根据主题更改图标?如果可用的主题是暗的还是光的

如何在Qt C++中根据主题更改图标?如果可用的主题是暗的还是光的
EN

Stack Overflow用户
提问于 2014-11-08 08:40:23
回答 1查看 1.7K关注 0票数 5

我有一个基于Qt的文本编辑器程序。它的默认主题是黑暗。我想添加一个特性,当用户为开关主题()选择一个QAction时,主题应该切换到光,图标也应该根据光/暗变化。在我的qrc文件中,我设置了如下结构

代码语言:javascript
复制
:/images
|--> /theme_dark/
|--> /theme_light/ 

图标文件名在两个目录中都保持不变。

代码语言:javascript
复制
void MainWindow::switchTheme(const QString &themeName) 
{
//themeName will be "light" or "dark"

    QString image_path = ":/images/theme_"+themeName+"/"; 

    //Now maybe we can create a QStringList and append(filenames) to it.
    //Find all QActions in the toolbar and setIcon()?
}

问题是暗图标在暗主题上不好看,光图标在光主题上不好看。我想知道如何有效地做到这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-08 10:08:20

您可以使用QFileSelector

代码语言:javascript
复制
QFileSelector selector;
QStringList extraSelectors;
extraSelectors << "theme_dark";
selector.setExtraSelectors(extraSelectors);
QString image = selector.select(":/images/myImage.png");

Qrc文件结构应该是:

代码语言:javascript
复制
:/images
|--> /+theme_dark/
|-----> myImage.png
|--> /+theme_light/
|-----> myImage.png
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26815319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档