@ypnos建议用多种方法有很大的联系,以解决问题。我最喜欢最后一个 - Creating a custom icon theme。笔者指出三票赞成(适用于所有平台,优异调整,涵盖所有需要的图标),和两个缺点(与系统的图标主题并不一致,疼痛的屁股实施)。 在这里我建议改进以摆脱缺点。
我已经从github克隆了Tango iconset。版本库https://github.com/ppinard/qtango已具有index.theme文件。但主要是它带来了一个Python脚本generate_rcc.py
,它可以自动生成*.qrc
文件。我只需将subprocess.check_call()
的参数从'--binary'
和'--compress'
更改为'-binary'
和'-compress'
。生成的文件包含绝对路径,但很容易找到&替换。人们可以将这个脚本用于任何iconset - 第一个艰难的步骤就解决了。
现在,使用“Theme”属性,您可以在Qt Designer中定义图标,正如问题中所示。对于在Linux下开发的人员,系统图标将在设计器中显示(假设iconset使用标准图标名称)。这是原生的外观(图标可以在您的系统设置中配置)。这可以让您摆脱ui->action_Open->setIcon(...)
编码。
最后的调整是设置主题之前用户界面设置。
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
#ifdef _WIN32
QIcon::setThemeName("tango");
#endif
ui = new Ui::MainWindow;
ui->setupUi(this);
...
// NO NEED FOR ui->action_Open->setIcon(...)
}
的#ifdef
当然可以进行调整,以靶向所有需要的平台上,或省略以迫使在所有平台上包括Linux相同的图标。
因此,这种方法避免了所有费力的编码,并且结果至少在Linux上与系统图标一致。
在其他操作系统中,工具栏上有相当大的标准图标等等,并且有图标主题。例如:http://commons.wikimedia.org/wiki/Tango_icons http://gnome-look.org/content/show.php/?content=122078正如你所看到的,这是一个相当不错的概念,因为所有的应用程序使用这些标准图标很适合任何桌面环境,也可以由用户自定义。 – ypnos
请注意,我以前的评论是对现已删除评论的回复。对困惑感到抱歉。 – ypnos