python - PyQt:如何找到适用于 Ubuntu Unity 的菜单文本颜色?

标签 python qt ubuntu pyqt themes

我想向菜单项添加无色图标。为了合理起见,图标的颜色应与菜单中使用的文本颜色相同。它适用于除 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/

相关文章:

python - 如何切片张量的一部分?

C++ 信号和访问 QtQuick 项

linux - 编译内核模块时出错: no such file or directory

python - 将列分配给由字符串构造的 pandas 数据框

python - 在 Excel 工作簿上保存多个数据帧,然后上传到 AWS S3 存储桶

Python:从经验分布生成随机值

c++ - 将 OpenCV 与 Qt 链接时出错

c++ - 在鼠标悬停在填充栏上时更改 QProgressBar 的颜色/文本

ubuntu - 在 Tkinter 中使用行/列时,IDLE 在 Elementary OS 上崩溃

java - UBUNTU 13.04 GNOME_DESKTOP_SESSION_ID