Hor*_*ter 18 icons qt-creator windows-7
我想使用Qt标准图标(如此处所示).我找到了许多如何以编程方式设置图标的示例(代码中的运行时).
但是,如何application-exit在Qt Creator中设置"标准图标名称"(例如)?这篇博客在这里说,我只是将主题设置为相应的名称.但我没有这样的主题属性,我会得到一个资源弹出窗口(截图如下).
在哪里适用"标准名称"(例如application-exit)?
从2.4.x更新到Qt Creator 2.5.2给了我上面博客的"主题"属性,但仍然没有可见的图标.使图标可见还需要什么?

备注Qt 4.8.1,现在更新到2.5.2,Windows 7
ypn*_*nos 13
主题图标仅在Linux/X11上受支持.在Windows和OS X上,您必须提供自己的图标.
此问题的解决方案是在QtCreator中设置主题名称(如示例所示).然后,您必须在资源中的前缀":/ icons"下提供相同别名的图标.您可以利用公共领域中可用集合中的图标,例如流行的Tango图标集.
如果您只定位Windows平台,则主题设置对您没有用.如果您同时使用Linux/X11和其他平台,使用此解决方案可以在一个系统上获得本机图标,并在其他系统上获得您自己提供的图标.
你可以在这里找到一个非常好的解释: http ://mithatkonar.com/wiki/doku.php/qt/icons
@ypnos建议使用多种方法来解决该问题。我喜欢最后一个- 创建自定义图标主题。笔者指出三票赞成(适用于所有平台,优秀的大小调整,涵盖了所有需要的图标),和两个缺点(与系统的图标主题不相符的,疼痛的屁股来实现)。在这里,我建议进行一些改进以摆脱“缺点”。
我已经从github中克隆了Tango图标集。仓库https://github.com/ppinard/qtango已经具有index.theme文件。但主要是它带来了Python脚本generate_rcc.py,该脚本可以*.qrc自动生成文件。我只需要更改subprocess.check_call()from '--binary'和'--compress'to '-binary'和and 的论点'-compress'。生成的文件包含绝对路径,但是查找和替换很容易。可以对任何图标集使用此脚本-解决第一个艰苦的步骤。
现在,使用“主题”属性,您可以在Qt设计器中定义图标,如问题中已经显示的那样。对于使用Linux开发的用户,系统图标将直接显示在Designer中(假设图标集使用标准图标名称)。那是本机外观(图标可以在您的系统设置中配置)。这使您摆脱了ui->action_Open->setIcon(...)编码。
最后的调整是在 ui设置之前设置主题。
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(...)
}
Run Code Online (Sandbox Code Playgroud)
该#ifdef课程的可以调整的目标所需的所有平台,或省略强制在所有平台包括Linux相同的图标。
结果,这种方法避免了所有费力的编码,并且结果至少与Linux上的系统图标一致。