【问题标题】:Qt C++ border iconQt C++ 边框图标
【发布时间】:2011-11-16 20:19:56
【问题描述】:

我创建新应用程序并使用关闭、最大化和最小化按钮删除标题栏(只需将 windowFlags 设置为 Qt::CustomizeWindowHint)。我创建了自己的按钮。现在我必须搜索已删除按钮的图标,但我找不到它们(关闭、最小化、最大化)。

问题:我可以使用 Windows 7 图标吗?不违反许可证吗?

【问题讨论】:

    标签: c++ qt icons


    【解决方案1】:

    您可以使用 Qt 的 QStyle 来获取 Qt 用来绘制自己的标题栏的图标等:

    QStyle* style = QApplication::style();
    QIcon icon = style->standardIcon( QStyle::SP_TitleBarCloseButton );
    

    查看QStyle::StandartPixmap enum 以获取可用的 Qt 标准图标列表。

    【讨论】:

    • 谢谢,它有效。但是这个图标看起来像 Windows XP 风格。我可以获取 Windows 7 图标吗?
    • 您可以使用 QStyleFactory::keys() 枚举可用的样式。不幸的是,我很确定只有在 Windows 7 上运行应用程序时才能使用 Windows 7 样式。
    • QStyleFactory::keys() 的结果是:Windows、WindowsXP、WindowsVista、Motif、CDE、Plastique、Cleanlooks。我为每种样式类型设置了应用程序样式,样式已更改,但图标(关闭按钮)看起来像默认的 Windows7 按钮(颜色不是红色,没有漂亮的灯光)。我的操作系统是 Windows 7,默认主题。
    【解决方案2】:

    将按钮作为位图图像分发,甚至嵌入到您的应用程序中很可能违反了 Windows 的 EULA。

    但是,如果您的应用在 Windows 上运行,则无需分发它们。只需找到关闭、最小化和最大化按钮在 Windows 7 中的存储位置(可能是系统文件夹中的一些 DLL),然后当您的应用程序运行时,直接使用这些图标(我相信 QIcon 可以加载它们)。这样就不会侵犯版权。

    【讨论】:

      猜你喜欢
      • 2015-03-02
      • 1970-01-01
      • 2014-10-05
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 2021-06-22
      相关资源
      最近更新 更多