我想向菜单项添加无色图标。为了合理起见,图标的颜色应与菜单中使用的文本颜色相同。它适用于除 Ubuntu 之外的任何地方。问题是默认的 Ubuntu Unity 主题对应用程序中的主菜单和其他文本(例如弹出菜单)使用不同的颜色。我需要主菜单专门使用的颜色。QApplication.palette().color(QPalette.Text)
返回应用程序中文本使用的深灰色。它在深灰色的菜单背景上几乎是不可见的。
我试过 palette()
QMenu 后代上的方法,但它返回与 QApplication.palette()
相同的值.
最佳答案
原来QMainWindow.menuBar().palette()
具有与屏幕顶部的 Unity 菜单匹配的颜色(我刚刚了解到它称为 appmenu)。这使得使用与菜单文本相同的颜色成为可能。
但有一个问题。 QtIcon.Active
的图标版本模式不用于事件菜单项。这可以在高对比度模式下看到。文本颜色会改变,但图标颜色不会。选择菜单项时,图标“消失”。这对于一个完善的程序来说还不够好。
我尝试了许多解决方法,例如使用 QIcon.addPixmap()
向图标添加额外的像素图.没有任何效果。 appmenu 在一个单独的进程中运行,不需要我们的“事件”图标。因此,我将绘制在任何合理背景上看起来都不错的真实图标,并且不需要使用小部件更改颜色。
太糟糕了。我预计 QIcon
模式和状态是专门为此类任务制定的。
关于python - PyQt:如何找到适用于 Ubuntu Unity 的菜单文本颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29045905/